Mercurial > hg > config
annotate python/sortdiff.py @ 856:1c3f6daa1190
require package
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Fri, 22 Dec 2017 14:10:15 -0800 |
parents | 84a865a880a8 |
children |
rev | line source |
---|---|
499
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1 #!/usr/bin/env python |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2 |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3 import optparse |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4 import os |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
5 import sys |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
6 |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
7 def main(args=sys.argv[1:]): |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
8 |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
9 usage = '%prog [options]' |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
10 parser = optparse.OptionParser(usage=usage, description=__doc__) |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
11 options, args = parser.parse_args(args) |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
12 |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
13 lines = sys.stdin.readlines() |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
14 diff = {'+': set(), |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
15 '-': set()} |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
16 for line in lines: |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
17 for key, value in diff.items(): |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
18 if line.startswith(key): |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
19 value.add(line[1:].strip()) |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
20 |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
21 added = diff['+'].difference(diff['-']) |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
22 minus = diff['-'].difference(diff['+']) |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
23 |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
24 print '+++' |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
25 for line in sorted(added): |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
26 print line |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
27 print '---' |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
28 for line in sorted(minus): |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
29 print line |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
30 |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
31 if __name__ == '__main__': |
84a865a880a8
a new way to view diffs based on sorted lines
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
32 main() |