Fix upload script: limpieza .p8 vía TRAPEXIT global (bug zsh: trap EXIT en función se dispara al retornar, borraba la key antes del archive)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LZFmGhbWzibhApev3C4554
This commit is contained in:
alexandrev-tibco
2026-07-21 13:58:20 +02:00
parent 32e1fb1c9c
commit 137931b37c
+9 -2
View File
@@ -27,6 +27,13 @@ ISSUER_ID="$(_pass_or_env "${APPSTORE_ISSUER_ID:-}" appstore/issuer-id)"
TEAM_ID="$(_pass_or_env "${DEVELOPMENT_TEAM_ID:-}" appstore/team-id)" TEAM_ID="$(_pass_or_env "${DEVELOPMENT_TEAM_ID:-}" appstore/team-id)"
P8_PATH="${APPSTORE_P8_PATH:-}" P8_PATH="${APPSTORE_P8_PATH:-}"
P8_DIR="" P8_DIR=""
# Fichero .p8 temporal a limpiar al salir. OJO zsh: un `trap ... EXIT` puesto DENTRO
# de una función se dispara al RETORNAR la función (no al salir el script, como bash),
# lo que borraba la clave antes del archive. Por eso la limpieza va en TRAPEXIT global.
P8_TEMP=""
TRAPEXIT() {
[[ -n "$P8_TEMP" ]] && rm -f "$P8_TEMP"
}
fail() { fail() {
echo "Error: $*" >&2 echo "Error: $*" >&2
@@ -54,8 +61,8 @@ find_p8_file() {
local tmp_p8="/tmp/AuthKey_${KEY_ID}.p8" local tmp_p8="/tmp/AuthKey_${KEY_ID}.p8"
pass show appstore/api-key-p8 > "$tmp_p8" pass show appstore/api-key-p8 > "$tmp_p8"
chmod 600 "$tmp_p8" chmod 600 "$tmp_p8"
# Registrar para limpieza al salir del script (trap en el shell principal). # Limpieza al salir del script vía TRAPEXIT global (ver arriba por qué no un trap local).
trap "rm -f '$tmp_p8'" EXIT P8_TEMP="$tmp_p8"
P8_PATH="$tmp_p8" P8_PATH="$tmp_p8"
return return
fi fi