50 lines
1.9 KiB
Python
50 lines
1.9 KiB
Python
|
#!/usr/bin/env python3
|
||
|
# -*- coding: utf-8 -*-
|
||
|
|
||
|
import json
|
||
|
|
||
|
from dir_to_json import get_json
|
||
|
|
||
|
def compare_json(json1, json2):
|
||
|
bckup1, bckup2 = json1[:], json2[:]
|
||
|
items1 = list(enumerate(json1))
|
||
|
items2 = list(enumerate(json2))
|
||
|
for i, item1 in items1:
|
||
|
for j, item2 in items2:
|
||
|
if item1["name"] == item2["name"]:
|
||
|
if item1["is_file"] == True == item2["is_file"]:
|
||
|
if item1["checksum"] == item2["checksum"]:
|
||
|
json1[i] = None
|
||
|
json2[j] = None
|
||
|
'''
|
||
|
else:
|
||
|
json1[i]["tag"] = "update"
|
||
|
json2[j] = None
|
||
|
'''
|
||
|
elif item1["is_file"] == False == item2["is_file"]:
|
||
|
new_json1, new_json2 = compare_json(item1["content"], item2["content"])
|
||
|
if len(new_json1) == 0:
|
||
|
json1[i] = None
|
||
|
else:
|
||
|
json1[i]["content"] = new_json1
|
||
|
if len(new_json2) == 0:
|
||
|
json2[j] = None
|
||
|
else:
|
||
|
json2[j]["content"] = new_json2
|
||
|
elif item1["is_file"] != item2["is_file"]:##### Caso hipotetico imposible #####
|
||
|
json1[i]["tag"] == "delete"
|
||
|
json1 = list(filter(None, json1))
|
||
|
json2 = list(filter(None, json2))
|
||
|
return json1, json2
|
||
|
if __name__ == "__main__":
|
||
|
try:
|
||
|
json1 = get_json("/home/kirbylife/Proyectos/munyal_test/original")
|
||
|
json2 = get_json("/home/kirbylife/Proyectos/munyal_test/copy")
|
||
|
except:
|
||
|
print("error outside")
|
||
|
json1, json2 = compare_json(json1, json2)
|
||
|
#print(len(json1), len(json2))
|
||
|
print(json.dumps(json1, indent=4))
|
||
|
print("\n============\n")
|
||
|
print(json.dumps(json2, indent=4))
|