From d9c5042ec759632d80ad2aa87d70cc7308c02779 Mon Sep 17 00:00:00 2001 From: KeshavAnandCode Date: Mon, 18 May 2026 15:54:48 +0000 Subject: [PATCH 1/2] 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): From 606501d6549e39bc261fd1f0a66dd2c00212afe5 Mon Sep 17 00:00:00 2001 From: KeshavAnandCode Date: Mon, 18 May 2026 15:56:17 +0000 Subject: [PATCH 2/2] readme fix --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c549a98..75c0338 100644 --- a/README.md +++ b/README.md @@ -6,10 +6,10 @@ ForeignThon transpiles `.es.py`, `.ta.py` (and more) into standard Python. Keywo ```python # hola.es.py -definir saludar(nombre): +def saludar(nombre): retornar f"Hola, {nombre}!" -para i en rango(3): +para i en dist(3): imprimir(saludar(f"mundo {i}")) ```