summaryrefslogtreecommitdiff
path: root/pywal/template.py
diff options
context:
space:
mode:
Diffstat (limited to 'pywal/template.py')
-rw-r--r--pywal/template.py31
1 files changed, 24 insertions, 7 deletions
diff --git a/pywal/template.py b/pywal/template.py
index ca72a12..a7961e3 100644
--- a/pywal/template.py
+++ b/pywal/template.py
@@ -2,11 +2,15 @@
Export colors in various formats.
"""
import os
+import pathlib
from .settings import __cache_dir__
from . import util
+TEMPLATE_DIR = pathlib.Path(__file__).parent / "templates"
+
+
def template(colors, input_file, cache_dir):
"""Read template file, substitute markers and
save the file elsewhere."""
@@ -18,15 +22,28 @@ def template(colors, input_file, cache_dir):
print(f"export: Exported {template_name}.")
-def export_all(colors, cache_dir=__cache_dir__, template_dir=None):
- """Export all template files."""
- template_dir = template_dir or \
- os.path.join(os.path.dirname(__file__), "templates")
-
+def flatten_colors(colors):
+ """Prepare colors to be exported. (Flatten dicts)"""
all_colors = {"wallpaper": colors["wallpaper"],
**colors["special"],
**colors["colors"]}
- all_colors = {k: util.Color(v) for k, v in all_colors.items()}
+ return {k: util.Color(v) for k, v in all_colors.items()}
+
- for file in os.scandir(template_dir):
+def export_all(colors, cache_dir=__cache_dir__):
+ """Export all template files."""
+ all_colors = flatten_colors(colors)
+
+ for file in os.scandir(TEMPLATE_DIR):
template(all_colors, file.path, cache_dir)
+
+
+def export(colors, file, cache_dir=__cache_dir__):
+ """Export a single template file."""
+ all_colors = flatten_colors(colors)
+ template_file = TEMPLATE_DIR / file
+
+ if template_file.is_file():
+ template(all_colors, template_file, cache_dir)
+ else:
+ print(f"[!] warning: template '{template_file}' doesn't exist.")