Files
fn_registry/bash/functions/infra/launch_cpp_app_windows.sh
T
egutierrez ca1bf5a59b feat(infra): auto-commit con 29 cambios
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 02:06:44 +02:00

43 lines
1.5 KiB
Bash

#!/usr/bin/env bash
# launch_cpp_app_windows — Lanza un .exe en Windows desde WSL2 via cmd.exe /c start.
# Asume que el exe ya fue copiado por deploy_cpp_exe_to_windows al escritorio.
launch_cpp_app_windows() {
local app="${1:-}"
local desktop_dir="${2:-/mnt/c/Users/lucas/Desktop}"
if [ -z "$app" ]; then
echo "ERROR: uso: launch_cpp_app_windows <app_name> [desktop_dir]" >&2
return 1
fi
local exe_path="$desktop_dir/apps/$app/$app.exe"
if [ ! -f "$exe_path" ]; then
echo "ERROR: exe no encontrado: $exe_path" >&2
echo "Copia primero con: deploy_cpp_exe_to_windows $app <app_dir>" >&2
return 1
fi
# Usamos PowerShell en vez de cmd.exe — los backslashes de paths Windows
# no rompen el escaping aqui (cmd.exe `\"` interpreta como escape de
# comilla y deja el string sin cerrar; PowerShell single-quote es literal).
local win_app_dir win_exe
win_app_dir=$(wslpath -w "$desktop_dir/apps/$app")
win_exe="$win_app_dir\\$app.exe"
# Start-Process detacha (equivale a `start` de cmd) y respeta -WorkingDirectory.
# Las comillas simples en PowerShell son literales — no procesa \ ni $.
powershell.exe -NoProfile -Command \
"Start-Process -FilePath '$win_exe' -WorkingDirectory '$win_app_dir'" \
>/dev/null 2>&1
local ts
ts=$(date '+%Y-%m-%dT%H:%M:%S')
echo "OK: $app launched at $ts"
}
if [ "${BASH_SOURCE[0]}" = "$0" ]; then
launch_cpp_app_windows "$@"
fi