feat: add cli for svg render

This commit is contained in:
2026-08-27 13:03:48 +08:00
parent f33523259a
commit c54ae438c1
2 changed files with 49 additions and 2 deletions
+7 -2
View File
@@ -1,18 +1,23 @@
import logging
from pathlib import Path
from .assemblicon.context import Prerequisite, Context, AdvancedContext, SvgRenderKind
from .assemblicon.context import Prerequisite, Context, AdvancedContext
from .assemblicon.utils import setup_logging
from .std_icons import build_standard_icons
from .nostd_icons import build_non_standard_icons
from .cli import parse
def main() -> None:
opts = parse()
setup_logging()
repository_root = Path(__file__).resolve().parent.parent.parent.parent
iconset_input = repository_root / "src"
iconset_output = repository_root / "artifact"
prereq = Prerequisite(iconset_input, iconset_output, SvgRenderKind.Inkscape)
prereq = Prerequisite(
iconset_input, iconset_output, opts.svg_render.to_assemblicon_type()
)
ctx = Context(prereq)
advctx = AdvancedContext(ctx)
+42
View File
@@ -0,0 +1,42 @@
import argparse
import enum
from dataclasses import dataclass
from .assemblicon import artrender
class SvgRender(enum.StrEnum):
Inkscape = "inkscape"
ReSvg = "resvg"
def to_assemblicon_type(self) -> artrender.SvgRenderKind:
match self:
case SvgRender.Inkscape:
return artrender.SvgRenderKind.Inkscape
case SvgRender.ReSvg:
return artrender.SvgRenderKind.ReSvg
@dataclass(frozen=True)
class Cli:
svg_render: SvgRender
def parse() -> Cli:
parser = argparse.ArgumentParser(
prog="Aurora Icon Set Builder",
description="The Programmatic Icon Assembly Workflow for Aurora Icon Set.",
)
parser.add_argument(
"-s",
"--svg-render",
dest="svg_render",
action="store",
type=SvgRender,
default=SvgRender.Inkscape,
help="The render used for rendering SVG into PNG.",
metavar="RENDER",
)
args = parser.parse_args()
return Cli(
svg_render=args.svg_render,
)