mirror of https://github.com/jumpserver/jumpserver
				
				
				
			
		
			
				
	
	
		
			53 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
| 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)
 |