"""연출 이미지 슬림 동기화 — 원본 폴더(권위)에서 데모가 쓰는 이미지만 web/assets/로 복사. 원천(권위): 카르밀라/0701_카르밀라/이미지/ (대표님 산출물). web/assets/는 배포용 파생물. router의 COVER_IMAGE·IMAGE_MAP·BACKGROUND_MAP·INTRO_IMAGES가 참조하는 상대경로를 그대로 유지한 채 복사한다 (권위는 router.py — 변경 시 함께 갱신). 실행: python scripts/sync_assets.py """ from __future__ import annotations import shutil from pathlib import Path ROOT = Path(__file__).resolve().parent.parent SRC = ROOT / "카르밀라" / "0701_카르밀라" / "이미지" DST = ROOT / "web" / "assets" RELATIVE_PATHS = [ # 표지·연출 컷 (IMAGE_MAP) "플래이 이미지/1.png", # 표지 "플래이 이미지/4.png", # E01-07 "인물/카르밀라.png", # E03-03 + 화자 초상 "인물/카르밀라 가면.png", # E06-09 # 화자 초상 (SPEAKER_PORTRAIT) "인물/아버지.png", "인물/가정교사.png", # 마드모아젤 "인물/보모.png", # 마담 # 인트로 시퀀스 (INTRO_IMAGES) "오노마x소락_방향/개요2.png", # 작품 소개 "오노마x소락_방향/개요3.png", # 등장인물 소개 "플래이 이미지/2.png", # 1장 시작 # 장소별 배경 (BACKGROUND_MAP) "배경/성.png", "배경/침실.png", "배경/식당.png", "배경/안개 숲.png", "배경/폐허성당.png", ] def main() -> None: if not SRC.exists(): raise SystemExit(f"원본 이미지 폴더 없음: {SRC}") for rel in RELATIVE_PATHS: src, dst = SRC / rel, DST / rel if not src.exists(): raise SystemExit(f"원본 이미지 누락: {src}") dst.parent.mkdir(parents=True, exist_ok=True) shutil.copy2(src, dst) print(f"복사: {rel}") print(f"완료 — {len(RELATIVE_PATHS)}장 → {DST}") if __name__ == "__main__": main()