1e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov#!/usr/bin/env python
2e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov# Copyright 2015 The PDFium Authors. All rights reserved.
3e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov# Use of this source code is governed by a BSD-style license that can be
4e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov# found in the LICENSE file.
5e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov
6e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovimport difflib
7e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovimport sys
8e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov
9e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovdef main(argv):
10e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov  if len(argv) != 3:
11e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov     print '%s: invalid arguments' % argv[0]
12e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov     return 2
13e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov  filename1 = argv[1]
14e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov  filename2 = argv[2]
15e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov  try:
16e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov    with open(filename1, "r") as f1:
17e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov      str1 = f1.readlines();
18e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov    with open(filename2, "r") as f2:
19e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov      str2 = f2.readlines();
20e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov    diffs = difflib.unified_diff(
21e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov        str1, str2, fromfile=filename1, tofile=filename2)
22e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov  except Exception as e:
23e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov    print "something went astray: %s" % e
24e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov    return 1
25e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov  status_code = 0
26e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov  for diff in diffs:
27e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov    sys.stdout.write(diff)
28e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov    status_code = 1
29e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov  return status_code
30e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov
31e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovif __name__ == '__main__':
32e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov  sys.exit(main(sys.argv))
33