55 lines
1.9 KiB
Python
55 lines
1.9 KiB
Python
#!/usr/bin/env python
|
|
import os
|
|
import toml
|
|
|
|
|
|
def main():
|
|
# Chech if config file exists
|
|
chezmoi_config_dir = os.path.join(os.environ["HOME"], ".config", "chezmoi")
|
|
if os.path.exists(os.path.join(chezmoi_config_dir, "chezmoi.toml")):
|
|
chezmoi_config_file = os.path.join(chezmoi_config_dir, "chezmoi.toml")
|
|
else:
|
|
return "=== ERROR: No chezmoi.toml found ==="
|
|
|
|
# Load config file into memory
|
|
chezmoi_config_dict = toml.load(chezmoi_config_file)
|
|
|
|
# Extract drapeau data
|
|
if "drapeau" not in chezmoi_config_dict["data"]:
|
|
chezmoi_config_dict["data"]["drapeau"] = {}
|
|
|
|
# Get colorscheme
|
|
if "colorscheme" in chezmoi_config_dict["data"]["drapeau"]:
|
|
drapeau_color_scheme = chezmoi_config_dict["data"]["drapeau"]["colorscheme"]
|
|
else:
|
|
drapeau_color_scheme = "default"
|
|
chezmoi_config_dict["data"]["drapeau"]["colorscheme"] = drapeau_color_scheme
|
|
|
|
# Find colorscheme files
|
|
# Produce dict of {"name": "path"} for all schemes
|
|
drapeau_config_dir = os.path.join(os.environ["HOME"], ".config", "drapeau")
|
|
if os.path.exists(drapeau_config_dir):
|
|
drapeau_color_scheme_files = {
|
|
".".join(scheme.split(".")[:-1]): os.path.join(drapeau_config_dir, scheme)
|
|
for scheme in os.listdir(drapeau_config_dir)
|
|
if os.path.isfile(os.path.join(drapeau_config_dir, scheme))
|
|
}
|
|
else:
|
|
drapeau_color_scheme_files = {}
|
|
|
|
# Extract colorscheme data from desired scheme
|
|
drapeau_color_scheme_dict = toml.load(
|
|
drapeau_color_scheme_files[drapeau_color_scheme]
|
|
)
|
|
|
|
# Add colorscheme to chezmoi config data
|
|
chezmoi_config_dict["data"]["drapeau"]["colors"] = drapeau_color_scheme_dict
|
|
|
|
# Write out modified dict to chezmoi config file
|
|
with open(chezmoi_config_file, "w") as f:
|
|
toml.dump(chezmoi_config_dict, f)
|
|
|
|
return "=== SUCCESS ==="
|
|
|
|
|
|
main()
|