Mercurial > hg > config
annotate python/sortdiff.py @ 929:7c4be71a560b default tip
remove old aliases
| author | Jeff Hammel <k0scist@gmail.com> |
|---|---|
| date | Mon, 20 Oct 2025 15:22:19 -0700 |
| 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() |
