Files
fn_registry/bash/functions/infra/resolve_cpp_app_dir.md
T
egutierrez 212875ed0d chore: auto-commit (286 archivos)
- .claude/agents/fn-orquestador/SKILL.md
- .claude/commands/fn_claude.md
- .claude/rules/INDEX.md
- .claude/rules/cpp_apps.md
- .claude/rules/ids_naming.md
- CHANGELOG.md
- apps/dag_engine/README.md
- apps/dag_engine/api.go
- apps/dag_engine/dags_migrated/example.yaml
- apps/dag_engine/dags_migrated/example_lineage_tracking.yaml
- ...

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-16 16:33:22 +02:00

2.4 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, tested, tests, test_file_path, file_path, params, output
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports tested tests test_file_path file_path params output
resolve_cpp_app_dir function bash infra 1.1.0 impure resolve_cpp_app_dir(app_name?: string) -> stdout: app_name app_dir Resuelve el nombre y directorio absoluto de una app C++ del registry. Sin arg deduce desde CWD si esta dentro de apps/<X>/, cpp/apps/<X>/ o projects/*/apps/<X>/. Con arg busca en las tres ubicaciones (apps/ canonical issue 0096 primero, luego cpp/apps/ legacy, luego projects/*/apps/). Imprime '<app_name>TAB<absolute_dir>' en stdout, exit 0; si no resuelve, lista apps disponibles en stderr y sale con exit 1.
cpp
resolve
app
directory
infra
cpp-windows
false error_go_core
false
bash/functions/infra/resolve_cpp_app_dir.sh
name desc
app_name Nombre de la app C++ a resolver (opcional). Sin arg se deduce desde el directorio actual si estamos dentro de apps/<X>/, cpp/apps/<X>/ o projects/*/apps/<X>/.
Una linea TAB-separada '<app_name>\t<absolute_dir_path>' en stdout. En caso de error imprime ayuda a stderr y sale con exit 1.

Ejemplo

# Desde dentro de cpp/apps/chart_demo/
cd /home/lucas/fn_registry/cpp/apps/chart_demo
resolve_cpp_app_dir
# -> chart_demo\t/home/lucas/fn_registry/cpp/apps/chart_demo

# Con argumento explicito
resolve_cpp_app_dir registry_dashboard
# -> registry_dashboard\t/home/lucas/fn_registry/cpp/apps/registry_dashboard

# Capturar los dos campos
resolved=$(resolve_cpp_app_dir graph_explorer)
APP="$(echo "$resolved" | cut -f1)"
APP_DIR="$(echo "$resolved" | cut -f2)"

Notas

Busca en orden:

  1. $ROOT/apps/<X> con CMakeLists.txt — layout canonical post-issue 0096.
  2. $ROOT/cpp/apps/<X> — legacy pre-issue 0096.
  3. $ROOT/projects/*/apps/<X> — apps de un proyecto (primer match gana).

Si ninguna ruta existe, imprime lista de apps disponibles (con prefijo de ubicacion) en stderr y sale con exit 1. Sourceable o ejecutable directamente. Helper interno _list_cpp_apps evita duplicar codigo en los paths de error.

Growth log

  • v1.1.0 (2026-05-16) — busca tambien en apps/<X>/ (canonical issue 0096). Antes solo cubria cpp/apps/<X>/ y projects/*/apps/<X>/, lo que hacia que ./fn run compile_cpp_app <name> fallara para apps movidas al layout canonical (ej. dag_engine_ui).