65 lines
2.2 KiB
Bash
Executable File
65 lines
2.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
source "$SCRIPT_DIR/lib.sh"
|
|
|
|
ERRORS=0
|
|
|
|
echo "=== OpenClaw on Android - Environment Check ==="
|
|
echo ""
|
|
|
|
if [ -z "${PREFIX:-}" ]; then
|
|
echo -e "${RED}[FAIL]${NC} Not running in Termux (\$PREFIX not set)"
|
|
echo " This script is designed for Termux on Android."
|
|
exit 1
|
|
else
|
|
echo -e "${GREEN}[OK]${NC} Termux detected (PREFIX=$PREFIX)"
|
|
fi
|
|
|
|
ARCH=$(uname -m)
|
|
echo -n " Architecture: $ARCH"
|
|
if [ "$ARCH" = "aarch64" ]; then
|
|
echo -e " ${GREEN}(recommended)${NC}"
|
|
elif [ "$ARCH" = "armv7l" ] || [ "$ARCH" = "arm" ]; then
|
|
echo -e " ${YELLOW}(supported, but aarch64 recommended)${NC}"
|
|
elif [ "$ARCH" = "x86_64" ] || [ "$ARCH" = "i686" ]; then
|
|
echo -e " ${YELLOW}(emulator detected)${NC}"
|
|
else
|
|
echo -e " ${YELLOW}(unknown, may not work)${NC}"
|
|
fi
|
|
|
|
AVAILABLE_MB=$(df "$PREFIX" 2>/dev/null | awk 'NR==2 {print int($4/1024)}')
|
|
if [ -n "$AVAILABLE_MB" ] && [ "$AVAILABLE_MB" -lt 1000 ]; then
|
|
echo -e "${RED}[FAIL]${NC} Insufficient disk space: ${AVAILABLE_MB}MB available (need 1000MB+)"
|
|
ERRORS=$((ERRORS + 1))
|
|
else
|
|
echo -e "${GREEN}[OK]${NC} Disk space: ${AVAILABLE_MB:-unknown}MB available"
|
|
fi
|
|
|
|
if command -v node &>/dev/null; then
|
|
NODE_VER=$(node -v 2>/dev/null || echo "unknown")
|
|
echo -e "${GREEN}[OK]${NC} Node.js found: $NODE_VER"
|
|
NODE_MAJOR="${NODE_VER%%.*}"
|
|
NODE_MAJOR="${NODE_MAJOR#v}"
|
|
if [ "$NODE_MAJOR" -lt 22 ] 2>/dev/null; then
|
|
echo -e "${YELLOW}[WARN]${NC} Node.js >= 22 required. Will be upgraded during install."
|
|
fi
|
|
else
|
|
echo -e "${YELLOW}[INFO]${NC} Node.js not found. Will be installed via glibc environment."
|
|
fi
|
|
|
|
SDK_INT=$(getprop ro.build.version.sdk 2>/dev/null || echo "0")
|
|
if [ "$SDK_INT" -ge 31 ] 2>/dev/null; then
|
|
echo -e "${YELLOW}[INFO]${NC} Android 12+ detected — if background processes get killed (signal 9),"
|
|
echo " see: https://github.com/AidanPark/openclaw-android/blob/main/docs/disable-phantom-process-killer.md"
|
|
fi
|
|
|
|
echo ""
|
|
if [ "$ERRORS" -gt 0 ]; then
|
|
echo -e "${RED}Environment check failed with $ERRORS error(s).${NC}"
|
|
exit 1
|
|
else
|
|
echo -e "${GREEN}Environment check passed.${NC}"
|
|
fi
|