diff --git a/src/fetchez/cli/recipes.py b/src/fetchez/cli/recipes.py index 221b1f8..7208795 100644 --- a/src/fetchez/cli/recipes.py +++ b/src/fetchez/cli/recipes.py @@ -360,24 +360,29 @@ def run_recipe( fg="yellow", ) - parsed_modifiers = [parse_hook_string(m) for m in modifier] - parsed_schemas = [s for s in schema] + try: + parsed_modifiers = [parse_hook_string(m) for m in modifier] + parsed_schemas = [s for s in schema] - if parsed_modifiers: - base_config["modifiers"] = parsed_modifiers + if parsed_modifiers: + base_config["modifiers"] = parsed_modifiers - if schema: - base_config["schemas"] = parsed_schemas + if schema: + base_config["schemas"] = parsed_schemas - recipe = Recipe.from_dict(base_config) - recipe.run( - outdir=outdir, - shared_cache=shared_cache, - refresh=refresh, - ignore_failures=ignore_failures, - ) + recipe = Recipe.from_dict(base_config) + + recipe.run( + outdir=outdir, + shared_cache=shared_cache, + refresh=refresh, + ignore_failures=ignore_failures, + ) + + click.secho(f"✨ Successfully executed {name} recipe!", fg="green", bold=True) - click.secho(f"✨ Successfully executed {name} recipe!", fg="green", bold=True) + except Exception as e: + click.secho(f"Failed to execute {name} recipe!: {str(e)}", fg="red") recipes_group.add_command(schemas_group, name="schemas") diff --git a/src/fetchez/registry.py b/src/fetchez/registry.py index fcf2b01..4f493fa 100644 --- a/src/fetchez/registry.py +++ b/src/fetchez/registry.py @@ -246,10 +246,10 @@ def _build_cache_meta(cls): Path.home() / ".fetchez" / cls.user_folder if cls.user_folder else None ) if user_folder and Path(user_folder).exists(): - mtimes = [Path(user_folder).stat().mtime] + mtimes = [Path(user_folder).stat().st_mtime] for f in os.listdir(user_folder): if f.endswith(".py"): - mtimes.append(Path(Path(user_folder) / f).stat().mtime) + mtimes.append(Path(Path(user_folder) / f).stat().st_mtime) meta["user_mtime"] = max(mtimes) # External Packages @@ -293,10 +293,10 @@ def _cache_is_valid(cls, meta): # User Plugins user_folder = Path(cls.user_folder).expanduser() if cls.user_folder else None if user_folder and Path(user_folder).exists(): - mtimes = [Path(user_folder).stat().mtime] + mtimes = [Path(user_folder).stat().st_mtime] for f in os.listdir(user_folder): if f.endswith(".py"): - mtimes.append(Path(Path(user_folder) / f).stat().mtime) + mtimes.append(Path(Path(user_folder) / f).stat().st_mtime) if meta.get("user_mtime") != max(mtimes): return False