summaryrefslogtreecommitdiff
path: root/lib/python2.7/Tools/scripts/diff.py
diff options
context:
space:
mode:
authorrahulp132020-03-17 14:55:41 +0530
committerrahulp132020-03-17 14:55:41 +0530
commit296443137f4288cb030e92859ccfbe3204bc1088 (patch)
treeca4798c2da1e7244edc3bc108d81b462b537aea2 /lib/python2.7/Tools/scripts/diff.py
parent0db48f6533517ecebfd9f0693f89deca28408b76 (diff)
downloadKiCad-eSim-296443137f4288cb030e92859ccfbe3204bc1088.tar.gz
KiCad-eSim-296443137f4288cb030e92859ccfbe3204bc1088.tar.bz2
KiCad-eSim-296443137f4288cb030e92859ccfbe3204bc1088.zip
initial commit
Diffstat (limited to 'lib/python2.7/Tools/scripts/diff.py')
-rw-r--r--lib/python2.7/Tools/scripts/diff.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/lib/python2.7/Tools/scripts/diff.py b/lib/python2.7/Tools/scripts/diff.py
new file mode 100644
index 0000000..068cea6
--- /dev/null
+++ b/lib/python2.7/Tools/scripts/diff.py
@@ -0,0 +1,50 @@
+#!/usr/bin/env python2
+""" Command line interface to difflib.py providing diffs in four formats:
+
+* ndiff: lists every line and highlights interline changes.
+* context: highlights clusters of changes in a before/after format.
+* unified: highlights clusters of changes in an inline format.
+* html: generates side by side comparison with change highlights.
+
+"""
+
+import sys, os, time, difflib, optparse
+
+def main():
+
+ 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, tofile = args
+
+ fromdate = time.ctime(os.stat(fromfile).st_mtime)
+ todate = time.ctime(os.stat(tofile).st_mtime)
+ fromlines = open(fromfile, 'U').readlines()
+ tolines = open(tofile, 'U').readlines()
+
+ if options.u:
+ diff = difflib.unified_diff(fromlines, tolines, fromfile, tofile, fromdate, todate, n=n)
+ elif options.n:
+ diff = difflib.ndiff(fromlines, tolines)
+ elif options.m:
+ diff = difflib.HtmlDiff().make_file(fromlines,tolines,fromfile,tofile,context=options.c,numlines=n)
+ else:
+ diff = difflib.context_diff(fromlines, tolines, fromfile, tofile, fromdate, todate, n=n)
+
+ sys.stdout.writelines(diff)
+
+if __name__ == '__main__':
+ main()