diff --git a/.github/workflows/generate-profile.yml b/.github/workflows/generate-profile.yml index ed0d2dd6..25c3202a 100644 --- a/.github/workflows/generate-profile.yml +++ b/.github/workflows/generate-profile.yml @@ -30,7 +30,7 @@ jobs: - name: Generate SVGs env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: python -m generator.main --demo + run: python -m generator.main generate --demo - name: Commit and push if changed run: | diff --git a/generator/main.py b/generator/main.py index 4ccb8e4c..d1c3b950 100644 --- a/generator/main.py +++ b/generator/main.py @@ -38,21 +38,29 @@ def generate(args): demo = getattr(args, "demo", False) # Load config + root_dir = os.path.join(os.path.dirname(__file__), "..") if demo: - config_path = os.path.join(os.path.dirname(__file__), "..", "config.example.yml") + config_candidates = [ + os.path.join(root_dir, "config.example.yml"), + os.path.join(root_dir, "config.yml"), + ] else: - config_path = os.path.join(os.path.dirname(__file__), "..", "config.yml") + config_candidates = [os.path.join(root_dir, "config.yml")] - try: - with open(config_path, "r") as f: - config = yaml.safe_load(f) - except FileNotFoundError: + config_path = next((path for path in config_candidates if os.path.exists(path)), None) + if config_path is None: if demo: - logger.error("config.example.yml not found.") + logger.error("Neither config.example.yml nor config.yml was found.") else: logger.error("config.yml not found. Copy config.example.yml to config.yml and edit it.") sys.exit(1) + if demo and config_path.endswith("config.yml"): + logger.info("Demo mode: config.example.yml not found, falling back to config.yml.") + + with open(config_path, "r", encoding="utf-8") as f: + config = yaml.safe_load(f) + try: config = validate_config(config) except ConfigError as e: @@ -121,14 +129,14 @@ def main(): gen_parser.add_argument( "--demo", action="store_true", - help="Generate SVGs with demo data (no API calls, uses config.example.yml)", + help="Generate SVGs with demo data (no API calls, uses config.example.yml or config.yml)", ) # Top-level --demo for backward compatibility (python -m generator.main --demo) parser.add_argument( "--demo", action="store_true", - help="Generate SVGs with demo data (no API calls, uses config.example.yml)", + help="Generate SVGs with demo data (no API calls, uses config.example.yml or config.yml)", ) args = parser.parse_args()