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