summaryrefslogtreecommitdiffstats
path: root/Tools/scripts/diff.py
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/scripts/diff.py')
-rwxr-xr-xTools/scripts/diff.py56
1 files changed, 24 insertions, 32 deletions
diff --git a/Tools/scripts/diff.py b/Tools/scripts/diff.py
index 96199b8..c4c2e10 100755
--- a/Tools/scripts/diff.py
+++ b/Tools/scripts/diff.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python3
+#!/usr/bin/env python
""" Command line interface to difflib.py providing diffs in four formats:
* ndiff: lists every line and highlights interline changes.
@@ -8,42 +8,34 @@
"""
-import sys, os, difflib, argparse
-from datetime import datetime, timezone
-
-def file_mtime(path):
- t = datetime.fromtimestamp(os.stat(path).st_mtime,
- timezone.utc)
- return t.astimezone().isoformat()
+import sys, os, time, difflib, optparse
def main():
- parser = argparse.ArgumentParser()
- parser.add_argument('-c', action='store_true', default=False,
- help='Produce a context format diff (default)')
- parser.add_argument('-u', action='store_true', default=False,
- help='Produce a unified format diff')
- parser.add_argument('-m', action='store_true', default=False,
- help='Produce HTML side by side diff '
- '(can use -c and -l in conjunction)')
- parser.add_argument('-n', action='store_true', default=False,
- help='Produce a ndiff format diff')
- parser.add_argument('-l', '--lines', type=int, default=3,
- help='Set number of context lines (default 3)')
- parser.add_argument('fromfile')
- parser.add_argument('tofile')
- options = parser.parse_args()
+ usage = "usage: %prog [options] fromfile tofile"
+ parser = optparse.OptionParser(usage)
+ parser.add_option("-c", action="store_true", default=False, help='Produce a context format diff (default)')
+ parser.add_option("-u", action="store_true", default=False, help='Produce a unified format diff')
+ parser.add_option("-m", action="store_true", default=False, help='Produce HTML side by side diff (can use -c and -l in conjunction)')
+ parser.add_option("-n", action="store_true", default=False, help='Produce a ndiff format diff')
+ parser.add_option("-l", "--lines", type="int", default=3, help='Set number of context lines (default 3)')
+ (options, args) = parser.parse_args()
+
+ if len(args) == 0:
+ parser.print_help()
+ sys.exit(1)
+ if len(args) != 2:
+ parser.error("need to specify both a fromfile and tofile")
n = options.lines
- fromfile = options.fromfile
- tofile = options.tofile
-
- fromdate = file_mtime(fromfile)
- todate = file_mtime(tofile)
- with open(fromfile) as ff:
- fromlines = ff.readlines()
- with open(tofile) as tf:
- tolines = tf.readlines()
+ fromfile, tofile = args
+
+ fromdate = time.ctime(os.stat(fromfile).st_mtime)
+ todate = time.ctime(os.stat(tofile).st_mtime)
+ with open(fromfile, 'U') as f:
+ fromlines = f.readlines()
+ with open(tofile, 'U') as f:
+ tolines = f.readlines()
if options.u:
diff = difflib.unified_diff(fromlines, tolines, fromfile, tofile, fromdate, todate, n=n)