X-Git-Url: https://code.delx.au/gnu-emacs-elpa/blobdiff_plain/af5a17495f80e22dae84f22f2b8b4b1105ca102b..e3826c87adb74a98da3ae7922cad6c529d1177d7:/admin/forward-diffs.py diff --git a/admin/forward-diffs.py b/admin/forward-diffs.py index 67c7d8a53..c0c330d23 100755 --- a/admin/forward-diffs.py +++ b/admin/forward-diffs.py @@ -1,9 +1,10 @@ #!/usr/bin/python ### forward-diffs.py --- forward emacs-diffs mails to maintainers -## Copyright (C) 2012 Free Software Foundation, Inc. +## Copyright (C) 2012-2014 Free Software Foundation, Inc. ## Author: Glenn Morris +## Maintainer: emacs-devel@gnu.org ## 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 @@ -181,7 +182,7 @@ parser.add_option( "-s", dest="sender", default=None, help="sender address for forwards") parser.add_option( "--create", dest="create", default=False, action="store_true", help="create maintfile") -parser.add_option( "--no-scan", dest="noscan", default=False, +parser.add_option( "--no-scan", dest="noscan", default=True, action="store_true", help="don't scan for maintainers; implies --no-update") parser.add_option( "--no-update", dest="noupdate", default=False, @@ -217,12 +218,6 @@ if not opts.create: parser.error('No sender specified') -## Create the maintfile. -if opts.create: - scan_dir( opts.packagedir, opts.maintfile ) - sys.exit() - - try: lfile = open( opts.logfile, 'a' ) except Exception as err: @@ -236,6 +231,12 @@ except Exception as err: lfile.write('Error opening maintfile: %s\n' % str(err)) sys.exit(1) +## Create the maintfile. +if opts.create: + scan_dir( opts.packagedir, opts.maintfile ) + sys.exit() + + ## Each element is package/file: maint1, maint2, ... maints = {} @@ -289,7 +290,20 @@ maints_seen = [] for line in text.splitlines(): - if re.match( 'modified:$', line ): + # Look for and process things that look like (Git): + # + # Summary of changes: + # packages/vlf/vlf.el | 2 +- + # 1 files changed, 1 insertions(+), 1 deletions(-) + # + # or things that look like (Git): + # + # --- + # packages/vlf/vlf.el | 2 +- + # 1 files changed, 1 insertions(+), 1 deletions(-) + + #BZR: if re.match( 'modified:$', line ): + if re.match( '---|Summary of changes:$', line ): start = True continue @@ -297,11 +311,17 @@ for line in text.splitlines(): ## An empty line or a line with non-empty first character. if re.match( '( *$|[^ ])', line ): break - + # Any line that doesn't match the diffstat format (Git). + if not re.match( ' [^ ]+ +\| ', line ): + lfile.write('Stop scanning at: %s\n' % line) + break if opts.prefix: - reg = re.match( '%s([^ ]+)' % opts.prefix, line.strip() ) - if not reg: continue + #BZR: reg = re.match( '%s([^ ]+)' % opts.prefix, line.strip() ) + reg = re.match( ' %s([^ ]+)' % opts.prefix, line ) + if not reg: + lfile.write('Skip: %s\n' % line) + continue pfile = reg.group(1) else: pfile = line.strip() @@ -326,7 +346,7 @@ for line in text.splitlines(): lfile.write('Scanning file...\n') thismaint = [] thisfile = os.path.join( opts.packagedir, pfile ) - scan_file( thisfile, thismaint ) + # scan_file( thisfile, thismaint ) if thismaint: maints[pfile] = thismaint