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:
parent
3b620ef7e3
commit
f9b145585f
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue