fix(deploy): 必填校验插在 HOST 赋值之前,set -u 下直接崩
现象:NAVI_HOST=... bash deploy/zd-host.sh v54 直接报 line 21: HOST: unbound variable 并退出(生产未受影响,纯脚本缺陷)。 原因:上一轮加 NAVI_HOST 必填校验时,把校验插到了 STAMP 之后、HOST 赋值之前, 而脚本是 set -u,提前引用未赋值变量即中止。 修复:校验移到 HOST 赋值之后;zd-host.sh 与 zd.sh 都改。 自测:不给 NAVI_HOST → 友好提示 + 退出码 2;给了则继续执行(实测进入构建阶段)。
This commit is contained in:
@ -18,8 +18,10 @@ VER="${1:?用法: deploy/zd-host.sh <version>}"
|
||||
TAG="homedash:ui-${VER}"
|
||||
STAMP="$(date +%Y%m%d%H%M%S)"
|
||||
|
||||
[ -n "$HOST" ] || { echo "!! 请指定目标机:NAVI_HOST=user@host bash $0 ..." >&2; exit 2; }
|
||||
HOST="${NAVI_HOST:-}" # 必填:NAVI_HOST=user@host(仓库不预置任何真实地址)
|
||||
|
||||
# 必填校验要在赋值之后(set -u 下提前引用会直接 unbound variable)
|
||||
[ -n "$HOST" ] || { echo "!! 请指定目标机:NAVI_HOST=user@host bash $0 <版本>" >&2; exit 2; }
|
||||
SSH_PASS="${NAVI_SSH_PASS:-}"
|
||||
DATA_DIR="${NAVI_DATA_DIR:-/vol1/docker/navi-data}"
|
||||
CERT_DIR="${NAVI_CERT_DIR:-/vol1/docker/cert}"
|
||||
|
||||
@ -25,8 +25,10 @@ VER="${1:?用法: deploy/zd.sh <version>}"
|
||||
TAG="homedash:ui-${VER}"
|
||||
STAMP="$(date +%Y%m%d%H%M%S)"
|
||||
|
||||
[ -n "$HOST" ] || { echo "!! 请指定目标机:NAVI_HOST=user@host bash $0 ..." >&2; exit 2; }
|
||||
HOST="${NAVI_HOST:-}" # 必填:NAVI_HOST=user@host
|
||||
|
||||
# 必填校验要在赋值之后(set -u 下提前引用会直接 unbound variable)
|
||||
[ -n "$HOST" ] || { echo "!! 请指定目标机:NAVI_HOST=user@host bash $0 <版本>" >&2; exit 2; }
|
||||
SSH_PASS="${NAVI_SSH_PASS:-}"
|
||||
UPSTREAM_HOST="${NAVI_UPSTREAM_HOST:-dashy.example.com}"
|
||||
PORTAL_CONF="${NAVI_PORTAL_CONF:-/vol1/docker/portal/nginx/nginx.conf}"
|
||||
|
||||
Reference in New Issue
Block a user