mirror of
https://github.com/github/spec-kit.git
synced 2026-03-16 18:33:07 +00:00
fix: wrap _load_catalog_config() calls in catalog_list with try/except
- Check SPECKIT_CATALOG_URL first (matching get_active_catalogs() resolution order) - Wrap both _load_catalog_config() calls in try/except ValidationError so a malformed config file cannot crash `specify extension catalog list` after the active catalogs have already been printed successfully Co-authored-by: mnriem <15701806+mnriem@users.noreply.github.com>
This commit is contained in:
@@ -1881,17 +1881,27 @@ def catalog_list():
|
|||||||
|
|
||||||
config_path = project_root / ".specify" / "extension-catalogs.yml"
|
config_path = project_root / ".specify" / "extension-catalogs.yml"
|
||||||
user_config_path = Path.home() / ".specify" / "extension-catalogs.yml"
|
user_config_path = Path.home() / ".specify" / "extension-catalogs.yml"
|
||||||
if config_path.exists() and catalog._load_catalog_config(config_path) is not None:
|
if os.environ.get("SPECKIT_CATALOG_URL"):
|
||||||
console.print(f"[dim]Config: {config_path.relative_to(project_root)}[/dim]")
|
|
||||||
elif os.environ.get("SPECKIT_CATALOG_URL"):
|
|
||||||
console.print("[dim]Catalog configured via SPECKIT_CATALOG_URL environment variable.[/dim]")
|
console.print("[dim]Catalog configured via SPECKIT_CATALOG_URL environment variable.[/dim]")
|
||||||
elif user_config_path.exists() and catalog._load_catalog_config(user_config_path) is not None:
|
|
||||||
console.print("[dim]Config: ~/.specify/extension-catalogs.yml[/dim]")
|
|
||||||
else:
|
else:
|
||||||
console.print("[dim]Using built-in default catalog stack.[/dim]")
|
try:
|
||||||
console.print(
|
proj_loaded = config_path.exists() and catalog._load_catalog_config(config_path) is not None
|
||||||
"[dim]Add .specify/extension-catalogs.yml to customize.[/dim]"
|
except ValidationError:
|
||||||
)
|
proj_loaded = False
|
||||||
|
if proj_loaded:
|
||||||
|
console.print(f"[dim]Config: {config_path.relative_to(project_root)}[/dim]")
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
user_loaded = user_config_path.exists() and catalog._load_catalog_config(user_config_path) is not None
|
||||||
|
except ValidationError:
|
||||||
|
user_loaded = False
|
||||||
|
if user_loaded:
|
||||||
|
console.print("[dim]Config: ~/.specify/extension-catalogs.yml[/dim]")
|
||||||
|
else:
|
||||||
|
console.print("[dim]Using built-in default catalog stack.[/dim]")
|
||||||
|
console.print(
|
||||||
|
"[dim]Add .specify/extension-catalogs.yml to customize.[/dim]"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@catalog_app.command("add")
|
@catalog_app.command("add")
|
||||||
|
|||||||
Reference in New Issue
Block a user