From 7640a2b4a88e61a9e3e8992de36f0f1e2d0e2321 Mon Sep 17 00:00:00 2001 From: gahusb Date: Mon, 18 May 2026 00:16:34 +0900 Subject: [PATCH] feat(insta-lab): design_importer CLI entrypoint (python -m app.design_importer) --- insta-lab/app/design_importer.py | 35 ++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/insta-lab/app/design_importer.py b/insta-lab/app/design_importer.py index c8179ce..cc9821b 100644 --- a/insta-lab/app/design_importer.py +++ b/insta-lab/app/design_importer.py @@ -259,3 +259,38 @@ def import_design_theme(theme_dir: str) -> Dict[str, Any]: "analysis_summary": vision_result["summary"], "tokens_used": vision_result["tokens"], } + + +# ── CLI entrypoint ─────────────────────────────────────────────────────────── + +def main_cli(): + """CLI: python -m app.design_importer [--templates-dir PATH]""" + import argparse + parser = argparse.ArgumentParser( + prog="design_importer", + description="사용자 카드 디자인 PNG 10장을 Claude Vision으로 분석해 card.html.j2 생성", + ) + parser.add_argument("theme_name", help="templates// 디렉토리명") + parser.add_argument( + "--templates-dir", + default="/app/app/templates", + help="templates 루트 디렉토리 (기본 컨테이너 내부 경로)", + ) + args = parser.parse_args() + + theme_dir = Path(args.templates_dir) / args.theme_name + if not theme_dir.is_dir(): + print(f"ERROR: theme 디렉토리 없음: {theme_dir}") + raise SystemExit(1) + + try: + result = import_design_theme(str(theme_dir)) + except Exception as e: + print(f"ERROR: {e}") + raise SystemExit(1) + + print(json.dumps(result, ensure_ascii=False, indent=2)) + + +if __name__ == "__main__": + main_cli()