fix: fix: vault_request RETURN trap fires prematurely when vault-env.sh is sourced (#773) #904

Merged
dev-qwen merged 1 commit from fix/issue-773 into main 2026-04-16 19:11:44 +00:00
Showing only changes of commit 96870d9f30 - Show all commits

View file

@ -128,7 +128,6 @@ vault_request() {
# Validate TOML content # Validate TOML content
local tmp_toml local tmp_toml
tmp_toml=$(mktemp /tmp/vault-XXXXXX.toml) tmp_toml=$(mktemp /tmp/vault-XXXXXX.toml)
trap 'rm -f "$tmp_toml"' RETURN
printf '%s' "$toml_content" > "$tmp_toml" printf '%s' "$toml_content" > "$tmp_toml"
@ -136,6 +135,7 @@ vault_request() {
local vault_env="${FACTORY_ROOT:-$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)}/action-vault/vault-env.sh" local vault_env="${FACTORY_ROOT:-$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)}/action-vault/vault-env.sh"
if [ ! -f "$vault_env" ]; then if [ ! -f "$vault_env" ]; then
echo "ERROR: vault-env.sh not found at $vault_env" >&2 echo "ERROR: vault-env.sh not found at $vault_env" >&2
rm -f "$tmp_toml"
return 1 return 1
fi fi
@ -145,11 +145,15 @@ vault_request() {
if ! source "$vault_env"; then if ! source "$vault_env"; then
FORGE_TOKEN="${_saved_forge_token:-}" FORGE_TOKEN="${_saved_forge_token:-}"
echo "ERROR: failed to source vault-env.sh" >&2 echo "ERROR: failed to source vault-env.sh" >&2
rm -f "$tmp_toml"
return 1 return 1
fi fi
# Restore caller's FORGE_TOKEN after validation # Restore caller's FORGE_TOKEN after validation
FORGE_TOKEN="${_saved_forge_token:-}" FORGE_TOKEN="${_saved_forge_token:-}"
# Set trap AFTER sourcing vault-env.sh to avoid RETURN trap firing during source
trap 'rm -f "$tmp_toml"' RETURN
# Run validation # Run validation
if ! validate_vault_action "$tmp_toml"; then if ! validate_vault_action "$tmp_toml"; then
echo "ERROR: TOML validation failed" >&2 echo "ERROR: TOML validation failed" >&2