import json as pyjson

values = [
    ('mixture_excess_term.json', '../../CoolProp/mixture_excess_JSON.h', 'mixture_excess_JSON'),
    ('mixture_reducing_parameters.json', '../../CoolProp/mixture_reducing_JSON.h', 'mixture_reducing_JSON')
]

for infile, outfile, variable in values:
    # Check you haven't messed up the JSON file and it will still load
    pyjson.loads(open(infile, 'r').read())

    json = open(infile, 'r').read()

    # Escape all existing quotations
    json = json.replace('"', '\\"')

    # Split into lines
    json = json.split('\n')

    # Add " to beginning and end of every line and end line with comma
    for i, line in enumerate(json):
        json[i] = '"' + line + '",'

    # Back together
    json = '\n'.join(json)

    # Header/footer
    json = '// File generated by the script dev/mixtures/JSON_to_C++.py\n\n// C array of std::string lines\nstd::string ' + variable + '_c_lines[] = {"",\n' + json + '};' + '\n\n// Combined into a single std::string \nstd::vector<std::string> ' + variable + '_lines(' + variable + '_c_lines, ' + variable + '_c_lines + sizeof(' + variable + '_c_lines) / sizeof(std::string)); \n\nstd::string ' + variable + ' = strjoin(' + variable + '_lines,"");'

    f = open(outfile, 'w')

    print(json, file=f)
