76 lines
1.9 KiB
Bash
Executable File
76 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
# Build bootable Alpine Linux ISO for Archipelago Bitcoin Node OS
|
|
# Supports building on macOS (via Docker) and Linux (native)
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
|
|
# Configuration
|
|
ARCHIPELAGO_VERSION="${ARCHIPELAGO_VERSION:-0.1.0}"
|
|
ALPINE_VERSION="${ALPINE_VERSION:-3.19}"
|
|
ARCH="${ARCH:-x86_64}"
|
|
BUILD_TYPE="${BUILD_TYPE:-iso}" # iso or disk
|
|
OUTPUT_DIR="${OUTPUT_DIR:-$SCRIPT_DIR/results}"
|
|
|
|
echo "🔨 Building Archipelago Alpine Linux Image"
|
|
echo " Version: $ARCHIPELAGO_VERSION"
|
|
echo " Alpine: $ALPINE_VERSION"
|
|
echo " Architecture: $ARCH"
|
|
echo " Build Type: $BUILD_TYPE"
|
|
echo ""
|
|
|
|
# Detect build environment
|
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
BUILD_ENV="macos"
|
|
USE_DOCKER=true
|
|
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
|
BUILD_ENV="linux"
|
|
USE_DOCKER=false
|
|
else
|
|
echo "❌ Unsupported OS: $OSTYPE"
|
|
exit 1
|
|
fi
|
|
|
|
echo "🌍 Build Environment: $BUILD_ENV"
|
|
echo ""
|
|
|
|
# Create output directory
|
|
mkdir -p "$OUTPUT_DIR"
|
|
|
|
# Build backend first
|
|
echo "📦 Building Archipelago backend..."
|
|
"$SCRIPT_DIR/scripts/build-backend.sh" || {
|
|
echo "❌ Backend build failed"
|
|
exit 1
|
|
}
|
|
|
|
# Build frontend
|
|
echo "🎨 Building Archipelago frontend..."
|
|
"$SCRIPT_DIR/scripts/build-frontend.sh" || {
|
|
echo "❌ Frontend build failed"
|
|
exit 1
|
|
}
|
|
|
|
# Create backend APK
|
|
echo "📦 Creating backend APK package..."
|
|
"$SCRIPT_DIR/scripts/create-backend-apk.sh" || {
|
|
echo "❌ APK creation failed"
|
|
exit 1
|
|
}
|
|
|
|
# Build image based on environment
|
|
if [ "$USE_DOCKER" = true ]; then
|
|
echo "🐳 Building via Docker (macOS)..."
|
|
"$SCRIPT_DIR/build-macos.sh" "$BUILD_TYPE"
|
|
else
|
|
echo "🐧 Building natively (Linux)..."
|
|
"$SCRIPT_DIR/build-linux.sh" "$BUILD_TYPE"
|
|
fi
|
|
|
|
echo ""
|
|
echo "✅ Build complete!"
|
|
echo " Output: $OUTPUT_DIR"
|
|
ls -lh "$OUTPUT_DIR"/*.{iso,img} 2>/dev/null || echo " (Check output directory for results)"
|