From d9c5042ec759632d80ad2aa87d70cc7308c02779 Mon Sep 17 00:00:00 2001 From: KeshavAnandCode Date: Mon, 18 May 2026 15:54:48 +0000 Subject: [PATCH] added langs command utility --- packages/foreignthon/src/foreignthon/cli.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/packages/foreignthon/src/foreignthon/cli.py b/packages/foreignthon/src/foreignthon/cli.py index 4a93529..2eeb306 100644 --- a/packages/foreignthon/src/foreignthon/cli.py +++ b/packages/foreignthon/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):