feat(deploy): 实现 enable_nginx_site 步骤 1(诊断)+ 步骤 2(清理)

This commit is contained in:
deploy-bot
2026-06-02 22:06:07 +08:00
parent a649357650
commit a6df8dcb92
+34 -1
View File
@@ -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 替换为完整建链+清默认
# ============================================================================