mirror of https://github.com/jumpserver/jumpserver
ibuler
2 years ago
3 changed files with 100 additions and 9 deletions
@ -0,0 +1,52 @@
|
||||
import difflib |
||||
import json |
||||
import sys |
||||
|
||||
|
||||
def diff_list(f1, f2): |
||||
with open(f1) as f: |
||||
data1 = json.load(f) |
||||
|
||||
data1_mapper = { |
||||
d['name']: d for d in data1 |
||||
} |
||||
with open(f2) as f: |
||||
data2 = json.load(f) |
||||
|
||||
data2_mapper = { |
||||
d['name']: d for d in data2 |
||||
} |
||||
|
||||
d1_names = set(data1_mapper.keys()) |
||||
d2_names = set(data2_mapper.keys()) |
||||
|
||||
diff_names = d1_names - d2_names |
||||
if diff_names: |
||||
print("Diff Names1: ", diff_names) |
||||
|
||||
diff_names = d2_names - d1_names |
||||
if diff_names: |
||||
print("Diff Names2: ", diff_names) |
||||
|
||||
for name, data in data1_mapper.items(): |
||||
if name not in data2_mapper: |
||||
continue |
||||
data2 = data2_mapper[name] |
||||
print("Diff: ", name) |
||||
diff = difflib.unified_diff( |
||||
json.dumps(data, indent=4, sort_keys=True).splitlines(), |
||||
json.dumps(data2, indent=4, sort_keys=True).splitlines() |
||||
) |
||||
print('\n'.join(diff)) |
||||
print() |
||||
|
||||
|
||||
if __name__ == '__main__': |
||||
if len(sys.argv) != 3: |
||||
print('Usage: python diff.py file1 file2') |
||||
sys.exit(1) |
||||
|
||||
f1 = sys.argv[1] |
||||
f2 = sys.argv[2] |
||||
|
||||
diff = diff_list(f1, f2) |
Loading…
Reference in new issue