

import json, sys, os

if len(sys.argv) > 2:
    first_argument = sys.argv[1]
    second_argument = sys.argv[2]
    print("will remove from", second_argument, "identical value in", first_argument)
else:
    print("Not enough command-line arguments provided.")
    exit()

def load(name):
    file = open(name, 'r', encoding='utf-8').read()
    dbdump = json.loads(file)
    return dbdump

def save(val,name):
    pretty = json.dumps(val, indent=2).encode().decode('unicode-escape')
    open(name, 'w', encoding='utf-8').write(pretty)



clien = load(sys.argv[2])
globa = load(sys.argv[1])

dif = {}

def diff(clien, globa):
    # dif = { k : clien[k] for k in set(clien) - set(globa) }
    if '$type' in clien:
        dif['$type'] = clien['$type']
    if '$values' in clien:
        dif['$values'] = diff(clien['$values'], globa['$values'])
    for k in clien:
        if clien[k] == globa[k]:
            print(k, 'same', clien[k], globa[k])
        else:
            print(k, 'diff', clien[k], globa[k])
            dif[k] = clien[k]
    return dif

dif = diff(clien, globa)

save(clien, sys.argv[2]+'.raw')
save(dif, sys.argv[2])