From a6df8dcb925a2e921e9cf78641f80dc72221f4b4 Mon Sep 17 00:00:00 2001 From: deploy-bot Date: Tue, 2 Jun 2026 22:06:07 +0800 Subject: [PATCH] =?UTF-8?q?feat(deploy):=20=E5=AE=9E=E7=8E=B0=20enable=5Fn?= =?UTF-8?q?ginx=5Fsite=20=E6=AD=A5=E9=AA=A4=201=EF=BC=88=E8=AF=8A=E6=96=AD?= =?UTF-8?q?=EF=BC=89+=20=E6=AD=A5=E9=AA=A4=202=EF=BC=88=E6=B8=85=E7=90=86?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy.py | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/deploy.py b/deploy.py index f53f712..da84720 100644 --- a/deploy.py +++ b/deploy.py @@ -273,7 +273,40 @@ def enable_nginx_site(remote_conf: str, domain: str) -> bool: target = f"/etc/nginx/sites-enabled/{domain}.conf" log_info(f"启用 nginx 站点: {target} -> {remote_conf}") - return True # 后续 Task 替换为完整 5 步实现 + + # ===== 步骤 1: 诊断目标路径状态 ===== + log_info("诊断步骤: 检查目标路径...") + diagnose_cmd = ( + f'test -e {target} && ' + f'(test -L {target} && echo "symlink" || ' + f'(test -d {target} && echo "dir" || echo "file")) || ' + f'echo "missing"' + ) + ok, status, err = ssh_command(diagnose_cmd, timeout=30) + if not ok: + log_error(f"诊断步骤失败: {err}") + return False + status = status.strip() + log_info(f"诊断结果: {status}") + + # ===== 步骤 2: 清理异常状态 ===== + log_info("清理步骤: 处理异常状态...") + cleanup_cmd = ( + f'case "{status}" in ' + f'symlink) unlink {target} ;; ' + f'dir) rm -rf {target} ;; ' + f'file) rm -f {target} ;; ' + f'missing) ;; ' + f'esac' + ) + ok, _, err = ssh_command(cleanup_cmd, timeout=30) + if not ok: + log_error(f"清理步骤失败: {err}") + log_error("上下文: 目标 = " + target) + log_error("提示: 权限可能不足(检查 /etc/nginx/sites-enabled 写权限)") + return False + log_info("清理步骤完成") + return True # Task 3 替换为完整建链+清默认 # ============================================================================