Files
fn_registry/bash/functions/shell/bash_safe_run.sh
T
egutierrez 8f45b40528 feat: add bash shell utility functions
12 funciones Bash del dominio shell: utilidades de scripting (bash_log,
bash_colors, bash_check_deps, bash_confirm, bash_handle_error, bash_safe_run),
manipulacion de texto (convert_text_case), estructura de proyectos
(create_project_structure), y operaciones git (git_clean_branches,
git_log_visual, git_push_all_remotes, git_repo_status). Cada una con su
.sh y .md de frontmatter.
2026-04-12 13:54:15 +02:00

45 lines
1.0 KiB
Bash

# bash_safe_run
# -------------
# Ejecutar comandos con manejo de errores y trap.
# Incluye safe_run, setup_error_trap y error_trap_handler.
#
# USO (sourced):
# source bash_safe_run.sh
# setup_error_trap
# safe_run "go build ./..." "BUILD_FAILED" "La compilacion fallo"
SCRIPT_DIR_BASH_SAFE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR_BASH_SAFE/bash_log.sh"
bash_log_init
safe_run() {
local cmd="$1"
local error_code="${2:-COMMAND_FAILED}"
local error_desc="${3:-El comando fallo: $cmd}"
debug "Ejecutando: $cmd"
if ! eval "$cmd"; then
error "$error_desc ($error_code)"
return 1
fi
return 0
}
setup_error_trap() {
trap 'error_trap_handler $? $LINENO' ERR
}
error_trap_handler() {
local exit_code=$1
local line_number=$2
if [ "$exit_code" -ne 0 ]; then
echo ""
error "El script fallo en la linea $line_number con codigo de salida $exit_code"
echo -e "${GRAY}Consulta el log: ${ERROR_LOG_FILE:-/tmp/script-errors.log}${NC}"
echo ""
fi
}