73 lines
2.0 KiB
Bash
Executable File
73 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# setup.sh — Cross-platform developer environment setup entrypoint.
|
|
#
|
|
# macOS: Dispatches to scripts/setup-dev-environment.sh (full bootstrap).
|
|
# Linux: Minimal bootstrap (JDK check, git hooks, Gradle dependencies).
|
|
#
|
|
# Usage: ./scripts/setup.sh [--install] [--verify]
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
OS="$(uname -s)"
|
|
|
|
if [[ "$OS" == "Darwin" ]]; then
|
|
exec "${SCRIPT_DIR}/setup-dev-environment.sh" "$@"
|
|
fi
|
|
|
|
if [[ "$OS" != "Linux" ]]; then
|
|
echo "Unsupported OS: $OS. This script supports macOS and Linux."
|
|
exit 1
|
|
fi
|
|
|
|
# --- Linux bootstrap ---
|
|
|
|
echo "=== periodvault development setup (Linux) ==="
|
|
echo ""
|
|
|
|
# Check JDK
|
|
if command -v java >/dev/null 2>&1; then
|
|
JAVA_MAJOR="$(java -version 2>&1 | head -1 | sed -E 's/.*"([0-9]+).*/\1/')"
|
|
echo "[ok] Java is installed (major version: $JAVA_MAJOR)"
|
|
if [[ "$JAVA_MAJOR" -lt 17 ]]; then
|
|
echo "[warn] JDK 17+ is required. Found major version $JAVA_MAJOR."
|
|
echo " Install: sudo apt-get install -y openjdk-17-jdk-headless"
|
|
fi
|
|
else
|
|
echo "[error] Java not found."
|
|
echo " Install: sudo apt-get install -y openjdk-17-jdk-headless"
|
|
exit 1
|
|
fi
|
|
|
|
# Check Android SDK
|
|
if [[ -n "${ANDROID_HOME:-}" ]]; then
|
|
echo "[ok] ANDROID_HOME is set: $ANDROID_HOME"
|
|
else
|
|
echo "[warn] ANDROID_HOME not set. Android SDK may not be available."
|
|
echo " Set ANDROID_HOME to your Android SDK path for Android builds."
|
|
fi
|
|
|
|
# Install git hooks
|
|
if [[ -x "$SCRIPT_DIR/install-hooks.sh" ]]; then
|
|
echo ""
|
|
echo "Installing git hooks..."
|
|
"$SCRIPT_DIR/install-hooks.sh"
|
|
echo "[ok] Git hooks configured"
|
|
fi
|
|
|
|
# Download Gradle dependencies
|
|
if [[ -x "$PROJECT_ROOT/gradlew" ]]; then
|
|
echo ""
|
|
echo "Downloading Gradle dependencies..."
|
|
"$PROJECT_ROOT/gradlew" --no-daemon dependencies > /dev/null 2>&1 || true
|
|
echo "[ok] Gradle dependencies downloaded"
|
|
fi
|
|
|
|
echo ""
|
|
echo "=== Setup complete (Linux) ==="
|
|
echo ""
|
|
echo "Verification commands:"
|
|
echo " ./gradlew shared:jvmTest"
|
|
echo " ./gradlew androidApp:testDebugUnitTest"
|