43 lines
1.1 KiB
Python
43 lines
1.1 KiB
Python
|
#!/usr/bin/env python
|
||
|
|
||
|
def parse_line(line):
|
||
|
cleaned = line.strip()
|
||
|
split = cleaned.split(maxsplit=1)
|
||
|
if not split:
|
||
|
return None, None
|
||
|
if len(split) < 2:
|
||
|
return split[0], None
|
||
|
return split
|
||
|
|
||
|
def parse_variables(section):
|
||
|
parsed = {}
|
||
|
with open("colorscheme.variables.conf", "r") as f:
|
||
|
current_section = None
|
||
|
for line in f:
|
||
|
key, value = parse_line(line)
|
||
|
if key == "!":
|
||
|
current_section = value
|
||
|
continue
|
||
|
if current_section == section:
|
||
|
parsed[key] = value
|
||
|
del parsed[None]
|
||
|
return parsed
|
||
|
|
||
|
common = parse_variables("Common")
|
||
|
for scheme in ("Dark", "Light"):
|
||
|
variables = parse_variables(scheme)
|
||
|
|
||
|
with open("colorscheme.template.conf", "r") as f:
|
||
|
template = f.read()
|
||
|
|
||
|
rewritten = template
|
||
|
for key, value in variables.items():
|
||
|
rewritten = rewritten.replace(key, value)
|
||
|
for key, value in common.items():
|
||
|
rewritten = rewritten.replace(key, value)
|
||
|
|
||
|
save_as = "colorscheme.{}.conf".format(scheme.lower())
|
||
|
with open(save_as, "w") as f:
|
||
|
f.write(rewritten)
|
||
|
|