diff --git a/tool/src/aurora_iconset_builder/assemblicon/artio.py b/tool/src/aurora_iconset_builder/assemblicon/artio.py index 186a7a3..f666201 100644 --- a/tool/src/aurora_iconset_builder/assemblicon/artio.py +++ b/tool/src/aurora_iconset_builder/assemblicon/artio.py @@ -1,4 +1,5 @@ import logging +import shutil from pathlib import Path import PIL.Image from .utils import Artifact, ArtifactFile @@ -23,3 +24,7 @@ def load_artifact(p: Path) -> ArtifactFile: def save_artifact(art: Artifact, p: Path) -> None: logging.info("Saving artifact: %s", p) art.save(p, format="PNG") + + +def dup_artifact(src: Path, dst: Path) -> None: + shutil.copyfile(src, dst) diff --git a/tool/src/aurora_iconset_builder/assemblicon/context.py b/tool/src/aurora_iconset_builder/assemblicon/context.py index 588c168..9c246d6 100644 --- a/tool/src/aurora_iconset_builder/assemblicon/context.py +++ b/tool/src/aurora_iconset_builder/assemblicon/context.py @@ -285,6 +285,15 @@ class AdvancedContext: dst = self.__fd_artifact(hw, kind, name) artio.save_artifact(thumbnail, dst) + def dup_fd_artifact( + self, src_kind: FdContext, src_name: str, dst_kind: FdContext, dst_name: str + ) -> None: + for hw in _FD_THUMBNAIL_HWS: + artio.dup_artifact( + self.__fd_artifact(hw, src_kind, src_name), + self.__fd_artifact(hw, dst_kind, dst_name), + ) + def __win_artifact(self, kind: WinCategory, name: str) -> Path: return self.__context.output_artifact(_ART_WIN, str(kind), f"{name}.ico") @@ -299,6 +308,14 @@ class AdvancedContext: ) artrender.render_ico(art, self.__win_artifact(kind, name)) + def dup_win_artifact( + self, src_kind: WinCategory, src_name: str, dst_kind: WinCategory, dst_name: str + ) -> None: + artio.dup_artifact( + self.__win_artifact(src_kind, src_name), + self.__win_artifact(dst_kind, dst_name), + ) + def __mac_artifact(self, kind: MacCategory, name: str) -> Path: return self.__context.output_artifact(_ART_MAC, str(kind), f"{name}.icns") @@ -311,4 +328,12 @@ class AdvancedContext: logging.info("Saving macOS-only artifact with kind %s and name %s.", kind, name) artrender.render_icns(art, self.__mac_artifact(kind, name)) + def dup_mac_artifact( + self, src_kind: MacCategory, src_name: str, dst_kind: MacCategory, dst_name: str + ) -> None: + artio.dup_artifact( + self.__mac_artifact(src_kind, src_name), + self.__mac_artifact(dst_kind, dst_name), + ) + # endregion