add diff by version fn v1

This commit is contained in:
pakintada@gmail.com 2023-10-05 11:26:49 +07:00
parent d5cfdf496f
commit 0c862fcb8b
2 changed files with 48 additions and 7 deletions

View file

@ -1,5 +1,5 @@
<div class="flex border rounded-md">
<div class="flex-1 flex-wrap bg-stone-200 p-8" id="log-disp">
<div class="border rounded-md">
<div class="bg-stone-200 p-8" id="log-disp">
<!-- query search -->
<!-- {{fetchLoglist()}} -->
@ -65,7 +65,7 @@
<h3 class="card-title">Generated log files</h3>
<div class="relative grid grid-cols-4 gap-4 m-1 auto-cols-min z-30" id="log-dir-list">
<div *ngFor="let logfile of displayableLogs">
<div class="card bg-stone-400 text-center" id="{{logfile}}">
<div class="card bg-stone-400 text-center shadow-md" id="{{logfile}}">
<div class="card-body p-2">
<p class="font-semibold">{{logfile}}</p>
@ -90,9 +90,10 @@
</div>
<!-- Temporary remove log -->
<div class="flex-3 sticky top-0 bg-slate-700 h-screen justify-centers items-center">
<app-merge></app-merge>
<!-- Temporary remove merge tool -->
<div class="mockup-code">
<pre><code>press this -> <button class="btn">Press</button></code></pre>
</div>
</div>

View file

@ -841,13 +841,53 @@ def merge_lists(original, updated, path=""):
original.append(item)
# Diff recipe = interactive diff
# diff_recipe(master, "v1-v2-v3")
# {"key_diff": [master_value, dev_value]}
def diff_recipe(args):
' `version 1`'
master_path = args[0]; versions_to_diff = args[1]
vs = versions_to_diff.split("-")
default_dir = "./server/cofffeemachineConfig/"
default_name = "coffeethai02_"
m_json = open(default_dir+default_name+master_path+".json", "r", encoding="utf-8").read()
master_json_diff = json.loads(m_json)
results = []
try:
for v in vs:
results.append({
"diff_between": master_path+"-"+v,
"result": diff(flatten(master_json_diff), flatten(json.loads(open(default_dir+default_name+v+".json", "r", encoding="utf-8").read())),)[2]
})
except:
print("Error diffing file")
for r in results:
if len(args) > 2 and args[2] == "debug":
print(r["diff_between"], " | diff len = ",len(r["result"]))
# write to file
with open(default_dir+"/diff/"+r["diff_between"]+".json", "w", encoding="utf-8") as f:
json.dump(r["result"], f, indent=2, ensure_ascii=False)
print("OK")
def main():
command_line = sys.argv[1]
print(sys.argv)
if command_line == "merge":
merge(sys.argv[2:])
elif command_line == "diff":
diff_recipe(sys.argv[2:])
if __name__ == "__main__":
main()