Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if os.path.split(sys.argv[0])[1].startswith('klondi'):
default_matcher = 'klondike'
p = optparse.OptionParser(usage='%prog [options] file_a file_b'
'\nFiles can be "-" to read from stdin')
p.add_option('--patience', dest='matcher', action='store_const', const='patience',
default=default_matcher, help='Use the patience difference algorithm')
p.add_option('--difflib', dest='matcher', action='store_const', const='difflib',
default=default_matcher, help='Use python\'s difflib algorithm')
p.add_option('--klondike', dest='matcher', action='store_const', const='klondike',
default=default_matcher, help='Use the klondike diff algorithm')
# TODO: implement more command line options
#p.add_option('--unified', '-u', help='output NUM (default 3) lines of unified context')
#p.add_option('--show-function-line', '-F', help='show the most recent line matching RE')
#p.add_option('--color', '-c')
algorithms = {'patience':PatienceSequenceMatcher, 'difflib':difflib.SequenceMatcher, 'klondike':KlondikeSequenceMatcher,}
(opts, args) = p.parse_args(args)
matcher = algorithms[opts.matcher]
colordiff_writer = colordiff.DiffWriter(sys.stdout, color='always')
def print_color(type, line):
colordiff_writer.target.writelines(colordiff_writer.colorstring(type, line) + '\n')
# check for git external diff syntax
# TODO: check if git header is correct, old/new mode isn't handled
displaynames = None
if len(args) == 7:
displaynames = ['a/' + args[0], 'b/' + args[0]]
print_color('metaline', 'diff --git {0} {1}'.format(*displaynames))
if '/dev/null' == args[1]:
print_color('metaline', 'new file mode ' + args[6])