diff --git a/pyproject.toml b/pyproject.toml index 4d573cb..3747d22 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "foreignthon" -version = "0.5.0" +version = "0.5.1" description = "Write Python in any language. Transpiles foreign-language .xx.py files to standard Python." license = { text = "GPL v3" } requires-python = ">=3.9" diff --git a/src/foreignthon/cli.py b/src/foreignthon/cli.py index 4a93529..2eeb306 100644 --- a/src/foreignthon/cli.py +++ b/src/foreignthon/cli.py @@ -274,7 +274,25 @@ def check(file: Path): click.echo(f"✗ {e}", err=True) sys.exit(1) +@main.command(context_settings=CONTEXT_SETTINGS) +def langs(): + """List all installed language packs.""" + from .pack import _discover_packs + packs = _discover_packs() + if not packs: + click.echo("No language packs installed.") + click.echo("Try: pip install foreignthon-es") + return + + click.echo("Installed language packs:") + for code, module in sorted(packs.items()): + import json + data = json.loads(module.get_pack_path().read_text(encoding="utf-8")) + name = data["meta"].get("name", code) + native = data["meta"].get("native_name", "") + click.echo(f" {code:<6} {name} ({native})") + @main.command("pack", context_settings=CONTEXT_SETTINGS) @click.argument("json_file", type=click.Path(exists=True, path_type=Path)) def validate_pack(json_file: Path):