diff --git a/scripts/dev/agent.sh b/scripts/dev/agent.sh index 823e8e3..ae79daf 100755 --- a/scripts/dev/agent.sh +++ b/scripts/dev/agent.sh @@ -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 }