Files
fn_registry/bash/functions/pipelines/redeploy_cpp_app_windows.md
egutierrez 7913116a8e chore: auto-commit (129 archivos)
- .claude/agents/fn-analizador/SKILL.md
- .claude/agents/fn-constructor/SKILL.md
- .claude/agents/fn-executor/SKILL.md
- .claude/agents/fn-mejorador/SKILL.md
- .claude/agents/fn-orquestador/SKILL.md
- .claude/agents/fn-recopilador/SKILL.md
- .claude/commands/app.md
- .claude/commands/compile.md
- .claude/commands/cpp-app.md
- .claude/commands/create_functions.md
- ...

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-01 22:23:12 +02:00

4.2 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
redeploy_cpp_app_windows pipeline bash pipelines 1.1.0 impure redeploy_cpp_app_windows(app_name: string, app_dir: string, [--build]) -> void Pipeline orquestador para redeployar una app C++ en Windows desde WSL2 en un solo comando. Reemplaza la secuencia manual taskkill+copy+launch+verify e incluye refresh del icon cache del shell.
cpp
windows
redeploy
pipeline
wsl
launcher
cpp-windows
build_cpp_windows_bash_infra
deploy_cpp_exe_to_windows_bash_infra
launch_cpp_app_windows_bash_infra
is_cpp_app_running_windows_bash_infra
refresh_windows_icon_cache_bash_infra
false error_go_core
false
bash/functions/pipelines/redeploy_cpp_app_windows.sh
name desc
app_name Nombre de la app C++ (ej: chart_demo, registry_dashboard). Se usa para localizar el .exe en cpp/build/windows/apps/<app>/ y el destino Desktop/apps/<app>/.
name desc
app_dir Ruta absoluta al directorio fuente de la app (ej: $HOME/fn_registry/cpp/apps/chart_demo). Requerido para localizar enrichers/, runtime/ y app.md.
name desc
--build Flag opcional. Si presente, compila la app para Windows antes del deploy. Por defecto off (asume .exe ya compilado).
Imprime 'OK: <app_name> redeployed (build=yes/no, PID=N)' en stdout. Exit 1 en cualquier paso fallido con mensaje de error indicando el paso.

Ejemplo

# Solo redeploy (asume build ya hecho)
redeploy_cpp_app_windows "registry_dashboard" "$HOME/fn_registry/projects/fn_monitoring/apps/registry_dashboard"

# Con build previo
redeploy_cpp_app_windows "chart_demo" "$HOME/fn_registry/cpp/apps/chart_demo" --build

Comportamiento

  1. Parsear flag --build (default off, opt-in).
  2. Si --build: invocar build_cpp_windows <app_name> para compilar cpp/build/windows/apps/<app_name>/<app_name>.exe. Si falla, exit 1 sin tocar el Desktop.
  3. Deploy: invocar deploy_cpp_exe_to_windows "<app_name>" "<app_dir>". Esta función mata el proceso si está vivo (taskkill.exe pre-autorizado), copia exe + DLLs + assets + runtime + enrichers, y preserva local_files/. 3b. Refresh icon cache (v1.1.0+): invocar refresh_windows_icon_cache (best-effort). Llama ie4uinit.exe -show para que Explorer recargue iconcache.db sin esperar al timestamp. Si falla, no aborta el pipeline.
  4. Launch: invocar launch_cpp_app_windows "<app_name>" para arrancar la app en Windows.
  5. Wait: sleep 1 — espera arranque corto.
  6. Verify: invocar is_cpp_app_running_windows "<app_name>". Si NO está vivo → exit 1 con mensaje claro.
  7. Stdout final: OK: <app_name> redeployed (build=yes/no, PID=N).

Argumentos

  • app_name — obligatorio. Nombre corto de la app.
  • app_dir — obligatorio. Ruta absoluta al directorio fuente (donde vive app.md, enrichers/, runtime/).
  • --build — opcional. Activa la compilación antes del deploy.

Errores

Cada paso es punto de fallo independiente. En caso de error el pipeline imprime a stderr indicando qué paso falló y hace exit 1:

  • ERROR [build]: build_cpp_windows falló — fallo de compilación.
  • ERROR [deploy]: deploy_cpp_exe_to_windows falló — fallo al copiar archivos.
  • ERROR [launch]: launch_cpp_app_windows falló — la app no arrancó.
  • ERROR [verify]: <app> no está corriendo — la app arrancó pero murió antes de 1s.

Notas

  • Ahorra ~6 comandos manuales por redeploy (taskkill + cp + cd + start + sleep + tasklist). Motivación: issue 0086 — maximizar Reg % registrando esta secuencia como pipeline trazable.
  • Cada fn run redeploy_cpp_app_windows_bash_pipelines queda registrado en call_monitor/operations.db, alimentando las métricas del bucle reactivo.
  • launch_cpp_app_windows_bash_infra e is_cpp_app_running_windows_bash_infra son creadas por un fn-constructor paralelo. Si aún no existen en el registry al indexar, el indexer lo registra como advertencia pero el pipeline es válido structuralmente.
  • Tag launcher incluido: este pipeline tiene sentido en el Pipeline Launcher TUI (apps/pipeline_launcher) — es un workflow interactivo lanzable con argumentos.