144 lines
3.6 KiB
Bash
Executable File
144 lines
3.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
source "$SCRIPT_DIR/../scripts/lib.sh"
|
|
|
|
PASS=0
|
|
FAIL=0
|
|
WARN=0
|
|
|
|
check_pass() {
|
|
echo -e "${GREEN}[PASS]${NC} $1"
|
|
PASS=$((PASS + 1))
|
|
}
|
|
|
|
check_fail() {
|
|
echo -e "${RED}[FAIL]${NC} $1"
|
|
FAIL=$((FAIL + 1))
|
|
}
|
|
|
|
check_warn() {
|
|
echo -e "${YELLOW}[WARN]${NC} $1"
|
|
WARN=$((WARN + 1))
|
|
}
|
|
|
|
echo "=== OpenClaw on Android - Installation Verification ==="
|
|
echo ""
|
|
|
|
if command -v node &>/dev/null; then
|
|
NODE_VER=$(node -v)
|
|
NODE_MAJOR="${NODE_VER%%.*}"
|
|
NODE_MAJOR="${NODE_MAJOR#v}"
|
|
if [ "$NODE_MAJOR" -ge 22 ] 2>/dev/null; then
|
|
check_pass "Node.js $NODE_VER (>= 22)"
|
|
else
|
|
check_fail "Node.js $NODE_VER (need >= 22)"
|
|
fi
|
|
else
|
|
check_fail "Node.js not found"
|
|
fi
|
|
|
|
if command -v npm &>/dev/null; then
|
|
check_pass "npm $(npm -v)"
|
|
else
|
|
check_fail "npm not found"
|
|
fi
|
|
|
|
if [ -n "${TMPDIR:-}" ]; then
|
|
check_pass "TMPDIR=$TMPDIR"
|
|
else
|
|
check_fail "TMPDIR not set"
|
|
fi
|
|
|
|
if [ "${OA_GLIBC:-}" = "1" ]; then
|
|
check_pass "OA_GLIBC=1 (glibc architecture)"
|
|
else
|
|
check_fail "OA_GLIBC not set"
|
|
fi
|
|
|
|
COMPAT_FILE="$PROJECT_DIR/patches/glibc-compat.js"
|
|
if [ -f "$COMPAT_FILE" ]; then
|
|
check_pass "glibc-compat.js exists"
|
|
else
|
|
check_fail "glibc-compat.js not found at $COMPAT_FILE"
|
|
fi
|
|
|
|
GLIBC_MARKER="$PROJECT_DIR/.glibc-arch"
|
|
if [ -f "$GLIBC_MARKER" ]; then
|
|
check_pass "glibc architecture marker (.glibc-arch)"
|
|
else
|
|
check_fail "glibc architecture marker not found"
|
|
fi
|
|
|
|
GLIBC_LDSO="${PREFIX:-}/glibc/lib/ld-linux-aarch64.so.1"
|
|
if [ -f "$GLIBC_LDSO" ]; then
|
|
check_pass "glibc dynamic linker (ld-linux-aarch64.so.1)"
|
|
else
|
|
check_fail "glibc dynamic linker not found at $GLIBC_LDSO"
|
|
fi
|
|
|
|
NODE_WRAPPER="$BIN_DIR/node"
|
|
if [ -f "$NODE_WRAPPER" ] && head -1 "$NODE_WRAPPER" 2>/dev/null | grep -q "bash"; then
|
|
check_pass "glibc node wrapper script"
|
|
else
|
|
check_fail "glibc node wrapper not found or not a wrapper script"
|
|
fi
|
|
|
|
for DIR in "$PROJECT_DIR" "$PREFIX/tmp"; do
|
|
if [ -d "$DIR" ]; then
|
|
check_pass "Directory $DIR exists"
|
|
else
|
|
check_fail "Directory $DIR missing"
|
|
fi
|
|
done
|
|
|
|
if command -v code-server &>/dev/null; then
|
|
CS_VER=$(code-server --version 2>/dev/null | head -1 || true)
|
|
if [ -n "$CS_VER" ]; then
|
|
check_pass "code-server $CS_VER"
|
|
else
|
|
check_warn "code-server found but --version failed"
|
|
fi
|
|
else
|
|
check_warn "code-server not installed (non-critical)"
|
|
fi
|
|
|
|
if command -v opencode &>/dev/null; then
|
|
check_pass "opencode command available"
|
|
else
|
|
check_warn "opencode not installed (non-critical)"
|
|
fi
|
|
|
|
if grep -qF "OpenClaw on Android" "$HOME/.bashrc" 2>/dev/null; then
|
|
check_pass ".bashrc contains environment block"
|
|
else
|
|
check_fail ".bashrc missing environment block"
|
|
fi
|
|
|
|
PLATFORM=$(detect_platform) || true
|
|
PLATFORM_VERIFY="$PROJECT_DIR/platforms/$PLATFORM/verify.sh"
|
|
if [ -n "$PLATFORM" ] && [ -f "$PLATFORM_VERIFY" ]; then
|
|
if bash "$PLATFORM_VERIFY"; then
|
|
check_pass "Platform verifier passed ($PLATFORM)"
|
|
else
|
|
check_fail "Platform verifier failed ($PLATFORM)"
|
|
fi
|
|
else
|
|
check_warn "Platform verifier not found (platform=${PLATFORM:-none})"
|
|
fi
|
|
|
|
echo ""
|
|
echo "==============================="
|
|
echo -e " Results: ${GREEN}$PASS passed${NC}, ${RED}$FAIL failed${NC}, ${YELLOW}$WARN warnings${NC}"
|
|
echo "==============================="
|
|
echo ""
|
|
|
|
if [ "$FAIL" -gt 0 ]; then
|
|
echo -e "${RED}Installation verification FAILED.${NC}"
|
|
echo "Please check the errors above and re-run install.sh"
|
|
exit 1
|
|
else
|
|
echo -e "${GREEN}Installation verification PASSED!${NC}"
|
|
fi
|