aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Saraev <stefan@saraev.ca>2017-03-19 18:33:17 +0200
committerChris "Koying" Browet <cbro@semperpax.com>2017-03-19 17:39:51 +0100
commitd0c4f319f3efa30ce1c88292132d94f9478896f3 (patch)
tree780fd9fc0f89cf462c887a0963772c94f787d898
parent742cc3c31b678789b802a7e45c4bc45275598016 (diff)
rpl-native is no more
-rw-r--r--tools/depends/Makefile.include.in2
-rw-r--r--tools/depends/native/Makefile2
-rw-r--r--tools/depends/native/rpl-native/Makefile17
-rw-r--r--tools/depends/native/rpl-native/rpl310
4 files changed, 1 insertions, 330 deletions
diff --git a/tools/depends/Makefile.include.in b/tools/depends/Makefile.include.in
index 2affdb9b13..a35cc85c71 100644
--- a/tools/depends/Makefile.include.in
+++ b/tools/depends/Makefile.include.in
@@ -42,8 +42,6 @@ ARCHIVE_TOOL_FLAGS=--strip-components=1 -xf
CONFIG_SUB=@prefix@/@tool_dir@/share/automake-1.15/config.sub
CONFIG_GUESS=@prefix@/@tool_dir@/share/automake-1.15/config.guess
-RPL=@prefix@/@tool_dir@/bin/python @prefix@/@tool_dir@/bin/rpl
-
USE_CCACHE=@use_ccache@
LD=@LD@
diff --git a/tools/depends/native/Makefile b/tools/depends/native/Makefile
index 1a179e29f8..c991549015 100644
--- a/tools/depends/native/Makefile
+++ b/tools/depends/native/Makefile
@@ -7,7 +7,7 @@ endif
NATIVE= m4-native gettext-native autoconf-native automake-native \
libtool-native pkg-config-native yasm-native cmake-native \
gas-preprocessor-native python27-native zlib-native \
- pcre-native swig-native rpl-native \
+ pcre-native swig-native \
libpng-native libjpeg-turbo-native liblzo2-native giflib-native \
distribute-native distutilscross-native JsonSchemaBuilder TexturePacker \
google-breakpad-native
diff --git a/tools/depends/native/rpl-native/Makefile b/tools/depends/native/rpl-native/Makefile
deleted file mode 100644
index 6ffeb6da07..0000000000
--- a/tools/depends/native/rpl-native/Makefile
+++ /dev/null
@@ -1,17 +0,0 @@
-include ../../Makefile.include
-PREFIX=$(NATIVEPREFIX)
-PLATFORM=$(NATIVEPLATFORM)
-DEPS= ../../Makefile.include.in Makefile rpl
-
-all: .installed-$(PLATFORM)
-
-.installed-$(PLATFORM): $(DEPS)
- mkdir -p $(PREFIX)/bin
- cp rpl $(PREFIX)/bin
- touch $@
-
-clean:
- rm -f .installed-$(PLATFORM)
-
-distclean::
- rm -f .installed-$(PLATFORM)
diff --git a/tools/depends/native/rpl-native/rpl b/tools/depends/native/rpl-native/rpl
deleted file mode 100644
index d528850571..0000000000
--- a/tools/depends/native/rpl-native/rpl
+++ /dev/null
@@ -1,310 +0,0 @@
-#!/usr/bin/python
-
-import optparse, sys, os, tempfile, re
-try: import readline
-except ImportError: pass
-from stat import *
-
-def show_license(*eat):
- print """rpl - replace strings in files
-Copyright (C) 2004-2005 Goran Weinholt <weinholt@debian.org>
-Copyright (C) 2004 Christian Haggstrom <chm@c00.info>
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-"""
- sys.exit(0)
-
-def get_files(filenames, recurse, suffixen, verbose, hidden_files):
- new_files = []
- for filename in filenames:
- try:
- perms = os.lstat(filename)
- except OSError, e:
- sys.stderr.write("\nrpl: Unable to read permissions of %s."
- % filename)
- sys.stderr.write("\nrpl: Error: %s" % e)
- sys.stderr.write("\nrpl: SKIPPING %s\n\n" % filename)
- continue
-
- if S_ISDIR(perms.st_mode):
- if recurse:
- if verbose:
- sys.stderr.write("Scanning Directory: %s\n" % filename)
- for f in os.listdir(filename):
- if not hidden_files and f.startswith('.'):
- if verbose:
- sys.stderr.write("Skipping: %s (hidden)\n"
- % os.path.join(filename, f))
- continue
- new_files += get_files([os.path.join(filename, f)],
- recurse, suffixen, verbose,
- hidden_files)
- else:
- if verbose:
- sys.stderr.write("Directory: %s skipped.\n" % filename)
- continue
- elif S_ISREG(perms.st_mode):
- if suffixen != [] and \
- not True in [ filename.endswith(s) for s in suffixen ]:
- sys.stderr.write("Skipping: %s (suffix not in list)\n"
- % filename)
- continue
- new_files += [(filename, perms)]
- else:
- sys.stderr.write("Skipping: %s (not a regular file)\n"
- % filename)
- return new_files
-
-def unescape(s):
- regex = re.compile(r'\\([0-7]{1,3}|x[0-9a-fA-F]{2}|[nrtvafb\\])')
- return regex.sub(lambda match: eval('"%s"' % match.group()), s)
-
-def blockrepl(instream, outstream, regex, before, after, blocksize=None):
- patlen = len(before)
- sum = 0
- if not blocksize: blocksize = 2*patlen
- tonext = ''
- while 1:
- block = instream.read(blocksize)
- if not block: break
- parts = regex.split(tonext+block)
- sum += len(parts)-1
- lastpart = parts[-1]
- if lastpart:
- tonext = lastpart[-patlen:]
- parts[-1] = lastpart[:-len(tonext)]
- else:
- tonext = ''
- outstream.write(after.join(parts))
- outstream.write(tonext)
- return sum
-
-def main():
- # First we parse the command line arguments...
- usage = "usage: %prog [options] old_string new_string target_file(s)"
- parser = optparse.OptionParser(usage, version="%prog 1.5.2")
- parser.add_option("-L", "--license", action="callback",
- callback=show_license, help="show the software license")
- parser.add_option("-x", metavar="SUFFIX",
- action="append", dest="suffixen", default=[],
- help="specify file suffix to match")
- parser.add_option("-i", "--ignore-case",
- action="store_true", dest="ignore_case", default=False,
- help="do a case insensitive match")
- parser.add_option("-w", "--whole-words",
- action="store_true", dest="whole_words", default=False,
- help="whole words (old_string matches on word boundaries only)")
- parser.add_option("-b", "--backup",
- action="store_true", dest="do_backup", default=False,
- help="make a backup before overwriting files")
- parser.add_option("-q", "--quiet",
- action="store_true", dest="quiet", default=False,
- help="quiet mode")
- parser.add_option("-v", "--verbose",
- action="store_true", dest="verbose", default=False,
- help="verbose mode")
- parser.add_option("-s", "--dry-run",
- action="store_true", dest="dry_run", default=False,
- help="simulation mode")
- parser.add_option("-R", "--recursive",
- action="store_true", dest="recurse", default=False,
- help="recurse into subdirectories")
- parser.add_option("-e", "--escape",
- action="store_true", dest="escapes", default=False,
- help="expand escapes in old_string and new_string")
- parser.add_option("-p", "--prompt",
- action="store_true", dest="prompt", default=False,
- help="prompt before modifying each file")
- parser.add_option("-f", "--force",
- action="store_true", dest="force", default=False,
- help="ignore errors when trying to preserve permissions")
- parser.add_option("-d", "--keep-times",
- action="store_true", dest="keep_times", default=False,
- help="keep the modification times on modified files")
- parser.add_option("-t", "--use-tmpdir",
- action="store_true", dest="use_tmpdir", default=False,
- help="use $TMPDIR for storing temporary files")
- parser.add_option("-a", "--all",
- action="store_true", dest="hidden_files", default=False,
- help="do not ignore files and directories starting with .")
- (opts, args) = parser.parse_args()
-
- # args should now contain old_str, new_str and a list of files/dirs
- if len(args) < 3:
- parser.error("must have at least three arguments")
- if args[0] == "":
- parser.error("must have something to replace")
-
- old_str = args[0]
- new_str = args[1]
- files = args[2:]
-
- # See if all the files actually exist
- for file in files:
- if not os.path.exists(file):
- sys.stderr.write("\nrpl: File \"%s\" not found.\n" % file)
- sys.exit(os.EX_DATAERR)
-
- if new_str == "" and not opts.quiet:
- sys.stderr.write("Really DELETE all occurences of %s " % old_str)
- if opts.ignore_case:
- sys.stderr.write("(ignoring case)? (Y/[N]) ")
- else:
- sys.stderr.write("(case sensitive)? (Y/[N]) ")
- line = raw_input()
- if line != "" and line[0] in "nN":
- sys.stderr.write("\nrpl: User cancelled operation.\n")
- sys.exit(os.EX_TEMPFAIL)
-
- # Tell the user what is going to happen
- if opts.dry_run:
- sys.stderr.write("Simulating replacement of \"%s\" with \"%s\" "
- % (old_str, new_str))
- else:
- sys.stderr.write("Replacing \"%s\" with \"%s\" " % (old_str, new_str))
- if opts.ignore_case: sys.stderr.write("(ignoring case) ")
- else: sys.stderr.write("(case sensitive) ")
- if opts.whole_words: sys.stderr.write("(whole words only)\n")
- else: sys.stderr.write("(partial words matched)\n")
- if opts.dry_run and not opts.quiet:
- sys.stderr.write("The files listed below would be modified in a replace operation.\n")
-
- if opts.escapes:
- old_str = unescape(old_str)
- new_str = unescape(new_str)
- if opts.whole_words:
- regex = re.compile(r"(?:(?<=\s)|^)" + re.escape(old_str) + r"(?=\s|$)",
- opts.ignore_case and re.I or 0)
- else:
- regex = re.compile(re.escape(old_str), opts.ignore_case and re.I or 0)
-
- total_matches = 0
- files = get_files(files, opts.recurse, opts.suffixen, opts.verbose, opts.hidden_files)
- for filename, perms in files:
- # Open the input file
- try: f = open(filename, "rb")
- except IOError, e:
- sys.stderr.write("\nrpl: Unable to open %s for reading." % fn)
- sys.stderr.write("\nrpl: Error: %s" % e)
- sys.stderr.write("\nrpl: SKIPPING %s\n\n" % fn)
- continue
-
- # Find out where we should put the temporary file
- if opts.use_tmpdir: tempfile.tempdir = None
- else: tempfile.tempdir = os.path.dirname(filename)
-
- # Create the output file
- try:
- o, tmp_path = tempfile.mkstemp("", ".tmp.")
- o = os.fdopen(o, "wb")
- except OSError, e:
- sys.stderr.write("\nrpl: Unable to create temp file.")
- sys.stderr.write("\nrpl: Error: %s" % e)
- sys.stderr.write("\nrpl: (Type \"rpl -h\" and consider \"-t\" to specify temp file location.)")
- sys.stderr.write("\nrpl: SKIPPING %s\n\n" % filename)
- continue
-
- # Set permissions and owner
- try:
- os.chown(tmp_path, perms.st_uid, perms.st_gid)
- os.chmod(tmp_path, perms.st_mode)
- except OSError, e:
- sys.stderr.write("\nrpl: Unable to set owner/group/perms of %s"
- % filename)
- sys.stderr.write("\nrpl: Error: %s" % e)
- if opts.force:
- sys.stderr.write("\nrpl: WARNING: New owner/group/perms may not match!\n\n")
- else:
- sys.stderr.write("\nrpl: SKIPPING %s!\n\n" % filename)
- os.unlink(tmp_path)
- continue
-
- if opts.verbose and not opts.dry_run:
- sys.stderr.write("Processing: %s\n" % filename)
- elif not opts.quiet and not opts.dry_run:
- sys.stderr.write(".")
- sys.stderr.flush()
-
- # Do the actual work now
- matches = blockrepl(f, o, regex, old_str, new_str, 1024)
-
- f.close()
- o.close()
-
- if matches == 0:
- os.unlink(tmp_path)
- continue
-
- if opts.dry_run:
- try:
- fn = os.path.realpath(filename)
- except OSError, e:
- fn = filename
- if not opts.quiet: sys.stderr.write(" %s\n" % fn)
- os.unlink(tmp_path)
- total_matches += matches
- continue
-
- if opts.prompt:
- sys.stderr.write("\nSave '%s' ? ([Y]/N) " % filename)
- line = ""
- while line == "" or line[0] not in "Yy\nnN":
- line = raw_input()
- if line[0] in "nN":
- sys.stderr.write("Not Saved.\n")
- os.unlink(tmp_path)
- continue
- sys.stderr.write("Saved.\n")
-
- if opts.do_backup:
- try: os.rename(filename, filename + "~")
- except OSError, e:
- sys.stderr.write("rpl: An error occured renaming %s to %s." % (filename, filename + "~"))
- sys.stderr.write("\nrpl: Error: %s" % e)
- continue
-
- # Rename the file
- try: os.rename(tmp_path, filename)
- except OSError, e:
- sys.stderr.write("rpl: An error occured replacing %s with %s."
- % (tmp_path, filename))
- sys.stderr.write("\nrpl: Error: %s" % e)
- os.unlink(tmp_path)
- continue
-
- # Restore the times
- if opts.keep_times:
- try: os.utime(filename, (perms.st_atime, perms.st_mtime))
- except OSError, e:
- sys.stderr.write("\nrpl: An error occured setting the access time and mod time of the file %s.", filename)
- sys.stderr.write("\nrpl: Error: %s" % e)
- total_matches += matches
-
- # We're about to exit, give a summary
- if not opts.quiet:
- if opts.dry_run:
- sys.stderr.write("\nA Total of %lu matches found in %lu file%s searched."
- % (total_matches,
- len(files),
- len(files) != 1 and "s" or ""))
- sys.stderr.write("\nNone replaced (simulation mode).\n")
- else:
- sys.stderr.write("\nA Total of %lu matches replaced in %lu file%s searched.\n"
- % (total_matches,
- len(files),
- len(files) != 1 and "s" or ""))
-
-if __name__ == "__main__":
- main()