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=() local line secret='' plain_lines=()
while IFS= read -r line || [[ -n "$line" ]]; do while IFS= read -r line || [[ -n "$line" ]]; do
case "$line" in if [[ "$line" =~ ^[[:space:]]*(MYWEB_SUDO_PASSWORD|SUDO_PASSWORD|MYWEB_PASS)[[:space:]]*=[[:space:]]*(.*)$ ]]; then
MYWEB_SUDO_PASSWORD=*|SUDO_PASSWORD=*) secret="${line#*=}" ;; secret="${BASH_REMATCH[2]}"
''|'#'*) ;; elif [[ -z "${line//[[:space:]]/}" || "$line" == \#* ]]; then
*) plain_lines+=("$line") ;; continue
esac else
plain_lines+=("$line")
fi
done < .env done < .env
# 去除键值分隔符附近的空白,避免 `KEY = value` 将空格传给 sudo。
secret="${secret#"${secret%%[![:space:]]*}"}"
secret="${secret%"${secret##*[![:space:]]}"}"
if [[ -z "$secret" && ${#plain_lines[@]} -eq 1 ]]; then if [[ -z "$secret" && ${#plain_lines[@]} -eq 1 ]]; then
secret="${plain_lines[0]}" secret="${plain_lines[0]}"
fi fi
@@ -144,8 +150,9 @@ apply_nginx_and_restart() {
return return
fi fi
load_sudo_password load_sudo_password
log_info ' .env 读取 sudo 密码,用于安装配置、校验并重载 Nginx。' log_info '使用 .env 中的凭据执行 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" # 禁用伪终端,避免标准输入中的敏感内容被远端终端回显。
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 已重启' log_ok 'Nginx 已重载Font2SVG API 已重启'
} }