diff --git a/builder/bbpkg/generator.py b/builder/bbpkg/generator.py index 68b6f286..d9176c30 100644 --- a/builder/bbpkg/generator.py +++ b/builder/bbpkg/generator.py @@ -6,9 +6,10 @@ from typing import Any, Dict, NamedTuple from clickgen.builders import WindowsCursor, XCursor from clickgen.core import CursorAlias -from clickgen.packagers import WindowsPackager, XPackager +from clickgen.packagers import WindowsPackager from bbpkg.constants import AUTHOR, URL +from bbpkg.packager import XPackager from bbpkg.symlinks import add_missing_xcursor @@ -38,7 +39,7 @@ def xbuild(config: Dict[str, Dict[str, Any]], x_out_dir: Path, info: Info) -> No with CursorAlias.from_bitmap(png, hotspot) as alias: x_cfg = alias.create(x_sizes, delay) - print(f" -> Building '{x_cfg.stem}' XCursor...") + print(f"Building '{x_cfg.stem}' XCursor...") XCursor.create(x_cfg, x_out_dir) add_missing_xcursor(x_out_dir / "cursors") @@ -77,7 +78,7 @@ def wbuild(config: Dict[str, Dict[str, Any]], win_out_dir: Path, info: Info) -> win_cfg = alias.reproduce( win_size, canvas_size, position, delay=win_delay ).rename(win_key) - print(f" -> Building '{win_cfg.stem}' Windows Cursor...") + print(f"Building '{win_cfg.stem}' Windows Cursor...") WindowsCursor.create(win_cfg, win_out_dir) WindowsPackager(win_out_dir, info.name, info.comment, AUTHOR, URL) @@ -112,7 +113,7 @@ def build( win_cfg = alias.reproduce( win_size, canvas_size, position, delay=win_delay ).rename(win_key) - print(f" -> Building '{win_cfg.stem}' Windows Cursor...") + print(f"Building '{win_cfg.stem}' Windows Cursor...") WindowsCursor.create(win_cfg, win_out_dir) for _, item in config.items(): @@ -123,7 +124,7 @@ def build( with CursorAlias.from_bitmap(png, hotspot) as alias: x_cfg = alias.create(x_sizes, delay) - print(f" -> Building '{x_cfg.stem}' XCursor...") + print(f"Building '{x_cfg.stem}' XCursor...") XCursor.create(x_cfg, x_out_dir) if item.get("win_key"): diff --git a/builder/bbpkg/packager.py b/builder/bbpkg/packager.py new file mode 100644 index 00000000..959e8fc8 --- /dev/null +++ b/builder/bbpkg/packager.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +from pathlib import Path +from string import Template +from typing import Dict + +THEME_FILES_TEMPLATES: Dict[str, Template] = { + "cursor.theme": Template("[Icon Theme]\nName=$theme_name\nInherits=$theme_name"), + "index.theme": Template( + '[Icon Theme]\nName=$theme_name\nComment=$comment\nInherits="hicolor"' + ), +} + + +def XPackager(directory: Path, theme_name: str, comment: str) -> None: + """ Create a crispy `XCursors` theme package. """ + + # Writing all .theme files + files: Dict[str, str] = {} + for file, template in THEME_FILES_TEMPLATES.items(): + files[file] = template.safe_substitute(theme_name=theme_name, comment=comment) + + for f, data in files.items(): + fp: Path = directory / f + fp.write_text(data) diff --git a/builder/build.py b/builder/build.py index 4e78f7c9..319d7c3f 100644 --- a/builder/build.py +++ b/builder/build.py @@ -109,7 +109,7 @@ comments = { x_out_dir = Path(args.out_dir) / name win_out_dir = Path(args.out_dir) / f"{name}-Windows" -print(f"=> Creating {name}") +print(f"Getting '{name}' bitmaps ready for build...") config = get_config( bitmaps_dir,