arcadiasuite/server/modules/openclaw/scripts/preflight-check.sh

64 lines
3.6 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$ROOT_DIR"
pass() { echo "[PASS] $1"; }
fail() { echo "[FAIL] $1"; exit 1; }
# 1) Shell 语法检查
bash -n install.sh || fail "install.sh syntax"
bash -n config-menu.sh || fail "config-menu.sh syntax"
bash -n docker-entrypoint.sh || fail "docker-entrypoint.sh syntax"
pass "shell syntax"
# 2) 官方升级链路关键字检查
grep -q "openclaw update --restart" config-menu.sh || fail "missing openclaw update --restart in config-menu.sh"
grep -q "openclaw plugins update --all" config-menu.sh || fail "missing plugins update --all in config-menu.sh"
pass "upgrade pipeline markers"
# 3) 飞书官方插件默认检查
grep -q 'FEISHU_PLUGIN_OFFICIAL="@openclaw/feishu"' config-menu.sh || fail "missing official feishu plugin default"
grep -q "channels.feishu.accounts.main.appId" config-menu.sh || fail "missing feishu accounts.main.appId config path"
grep -q 'openclaw plugins install "$preferred_spec" --pin' config-menu.sh || fail "missing pinned official feishu install"
pass "feishu plugin default marker"
# 4) 安装器官方兼容关键点
grep -q -- "--install-method, --method" install.sh || fail "install.sh missing official install-method flag"
grep -q "OFFICIAL_INSTALL_URL=\"https://openclaw.ai/install.sh\"" install.sh || fail "install.sh missing official installer url"
grep -q "MIN_NODE_MINOR=12" install.sh || fail "install.sh missing Node 22.12+ floor"
grep -q "INSTALLER_MIRROR_RAW_URL=" install.sh || fail "install.sh missing installer mirror support"
pass "installer compatibility markers"
# 5) 文档命令一致性检查
grep -q "openclaw update --restart" README.md || fail "README missing official upgrade command"
grep -q "openclaw plugins update --all" README.md || fail "README missing plugin update command"
grep -q "raw.githubusercontent.com/leecyno1/auto-install-Openclaw/main/install.sh" README.md || fail "README missing new one-click url"
grep -q "mirror.ghproxy.com/https://raw.githubusercontent.com/leecyno1/auto-install-Openclaw/main/install.sh" README.md || fail "README missing mirror one-click url"
pass "README command markers"
# 6) 独立仓库命名检查(不应再指向旧仓库)
if rg -n "miaoxworld/OpenClawInstaller|raw.githubusercontent.com/miaoxworld/OpenClawInstaller" README.md install.sh config-menu.sh docs/feishu-setup.md >/dev/null 2>&1; then
fail "found legacy upstream repository references"
fi
pass "independent repo markers"
# 7) 1:1 清单文档存在性检查
[ -f docs/official-compatibility-checklist.md ] || fail "missing official compatibility checklist doc"
pass "compatibility checklist doc"
# 8) auto-fix-openclaw + Claude/Codex 修复入口检查
grep -q 'AUTO_FIX_OPENCLAW_REPO_URL=' config-menu.sh || fail "missing auto-fix-openclaw repo variable"
grep -q 'AI 自动修复 OpenClaw' config-menu.sh || fail "missing AI auto-fix menu entry"
grep -q '执行 AI 修复(选择 Claude/Codex' config-menu.sh || fail "missing unified AI repair entry"
grep -q 'choose_auto_fix_repair_provider' config-menu.sh || fail "missing provider chooser function"
grep -q 'check_codex_ready' config-menu.sh || fail "missing codex readiness guard"
grep -q 'codex login status' config-menu.sh || fail "missing codex login status check"
grep -q '自动读取错误日志摘要' config-menu.sh || fail "missing log-driven repair hint"
grep -q 'run_auto_fix_provider_repair codex' config-menu.sh || fail "missing codex repair entry"
grep -q 'run_auto_fix_provider_repair claudecode' config-menu.sh || fail "missing claudecode repair entry"
pass "auto-fix menu markers"
echo "All preflight checks passed."