fix(dev): agent.sh validate_name set -e safety + ERR trap

Refactor [ test ] && prefail pattern to if/then/fi — set -euo pipefail
was silently exiting after the loop because the failing-test compound
propagated exit code 1 through the function return.

Add ERR trap so future silent fails get diagnosed at the source.
This commit is contained in:
Oskar Kapala 2026-06-03 18:02:50 +02:00
parent 3b620ef7e3
commit f9b145585f

View file

@ -3,6 +3,8 @@
# EXIT: 0 ok, 1 preflight, 2 operation failed.
set -euo pipefail
trap 'echo "agent.sh: failed at line $LINENO (exit $?)" >&2' ERR
RESERVED_NAMES=(master main HEAD list merge clean new)
MAX_WORKTREES=4
@ -73,9 +75,13 @@ age_str() {
validate_name() {
local name="$1"
[[ "$name" =~ ^[a-z][a-z0-9-]*$ ]] || prefail "name '$name' must match ^[a-z][a-z0-9-]*$"
if ! [[ "$name" =~ ^[a-z][a-z0-9-]*$ ]]; then
prefail "name '$name' must match ^[a-z][a-z0-9-]*$"
fi
for r in "${RESERVED_NAMES[@]}"; do
[ "$name" = "$r" ] && prefail "'$name' is a reserved word"
if [ "$name" = "$r" ]; then
prefail "'$name' is a reserved word"
fi
done
}