1
0
Fork 0
env/.config/kitty/colorscheme.generate.py

43 lines
1.1 KiB
Python
Executable File

#!/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)