update at 2026-07-26 10:52:38

This commit is contained in:
douboer@gmail.com
2026-07-26 10:52:38 +08:00
parent ab25cab481
commit dda40d89ec

View File

@@ -47,13 +47,19 @@ load_sudo_password() {
local line secret='' plain_lines=()
while IFS= read -r line || [[ -n "$line" ]]; do
case "$line" in
MYWEB_SUDO_PASSWORD=*|SUDO_PASSWORD=*) secret="${line#*=}" ;;
''|'#'*) ;;
*) plain_lines+=("$line") ;;
esac
if [[ "$line" =~ ^[[:space:]]*(MYWEB_SUDO_PASSWORD|SUDO_PASSWORD|MYWEB_PASS)[[:space:]]*=[[:space:]]*(.*)$ ]]; then
secret="${BASH_REMATCH[2]}"
elif [[ -z "${line//[[:space:]]/}" || "$line" == \#* ]]; then
continue
else
plain_lines+=("$line")
fi
done < .env
# 去除键值分隔符附近的空白,避免 `KEY = value` 将空格传给 sudo。
secret="${secret#"${secret%%[![:space:]]*}"}"
secret="${secret%"${secret##*[![:space:]]}"}"
if [[ -z "$secret" && ${#plain_lines[@]} -eq 1 ]]; then
secret="${plain_lines[0]}"
fi
@@ -144,8 +150,9 @@ apply_nginx_and_restart() {
return
fi
load_sudo_password
log_info ' .env 读取 sudo 密码,用于安装配置、校验并重载 Nginx。'
printf '%s\n' "$MYWEB_SUDO_PASSWORD" | ssh -tt -o ConnectTimeout=12 "$SERVER_WEB" "sudo -S -p '' install -m 644 '$REMOTE_WORKDIR/fonts.conf' /etc/nginx/conf.d/fonts.conf && sudo -S -p '' nginx -t && sudo -S -p '' systemctl reload nginx && sudo -S -p '' systemctl restart font2svg-api"
log_info '使用 .env 中的凭据执行 Nginx 配置与服务重启。'
# 禁用伪终端,避免标准输入中的敏感内容被远端终端回显。
printf '%s\n' "$MYWEB_SUDO_PASSWORD" | ssh -T -o ConnectTimeout=12 "$SERVER_WEB" "sudo -S -p '' bash -lc 'install -m 644 \"$REMOTE_WORKDIR/fonts.conf\" /etc/nginx/conf.d/fonts.conf && nginx -t && systemctl reload nginx && systemctl restart font2svg-api'"
log_ok 'Nginx 已重载Font2SVG API 已重启'
}