diff options
author | Stefan Saraev <stefan@saraev.ca> | 2017-03-19 18:33:17 +0200 |
---|---|---|
committer | Chris "Koying" Browet <cbro@semperpax.com> | 2017-03-19 17:39:51 +0100 |
commit | d0c4f319f3efa30ce1c88292132d94f9478896f3 (patch) | |
tree | 780fd9fc0f89cf462c887a0963772c94f787d898 | |
parent | 742cc3c31b678789b802a7e45c4bc45275598016 (diff) |
rpl-native is no more
-rw-r--r-- | tools/depends/Makefile.include.in | 2 | ||||
-rw-r--r-- | tools/depends/native/Makefile | 2 | ||||
-rw-r--r-- | tools/depends/native/rpl-native/Makefile | 17 | ||||
-rw-r--r-- | tools/depends/native/rpl-native/rpl | 310 |
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() |