mirror of https://github.com/jumpserver/jumpserver
parent
faff0cd20a
commit
ce38b2263c
@ -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