Refactor server and API handler for improved error handling and routing logic. Updated request handling to use Incoming type and added HTTP/1.1 restriction. Enhanced splash screen logic in the frontend to manage routing based on onboarding and setup states. Fixed WebSocket client initialization to ensure lazy loading and error handling. Cleaned up unused imports and variables across multiple files.
This commit is contained in:
80
image-recipe/scripts/check-dependencies.sh
Executable file
80
image-recipe/scripts/check-dependencies.sh
Executable file
@@ -0,0 +1,80 @@
|
||||
#!/bin/bash
|
||||
# Check build dependencies and provide installation instructions
|
||||
|
||||
set -e
|
||||
|
||||
echo "🔍 Checking build dependencies..."
|
||||
echo ""
|
||||
|
||||
MISSING_DEPS=0
|
||||
|
||||
# Check Rust
|
||||
if command -v rustc >/dev/null 2>&1; then
|
||||
echo "✅ Rust: $(rustc --version)"
|
||||
else
|
||||
echo "❌ Rust: Not found"
|
||||
echo " Install: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh"
|
||||
MISSING_DEPS=$((MISSING_DEPS + 1))
|
||||
fi
|
||||
|
||||
# Check Node.js
|
||||
if command -v node >/dev/null 2>&1; then
|
||||
NODE_VERSION=$(node --version)
|
||||
NODE_MAJOR=$(echo "$NODE_VERSION" | cut -d. -f1 | tr -d 'v')
|
||||
if [ "$NODE_MAJOR" -ge 18 ]; then
|
||||
echo "✅ Node.js: $NODE_VERSION"
|
||||
else
|
||||
echo "⚠️ Node.js: $NODE_VERSION (need 18+)"
|
||||
MISSING_DEPS=$((MISSING_DEPS + 1))
|
||||
fi
|
||||
else
|
||||
echo "❌ Node.js: Not found"
|
||||
echo " Install: https://nodejs.org/"
|
||||
MISSING_DEPS=$((MISSING_DEPS + 1))
|
||||
fi
|
||||
|
||||
# Check Docker (for macOS or non-Alpine Linux)
|
||||
if [[ "$OSTYPE" == "darwin"* ]] || [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
||||
if command -v docker >/dev/null 2>&1; then
|
||||
if docker info >/dev/null 2>&1; then
|
||||
echo "✅ Docker: $(docker --version)"
|
||||
else
|
||||
echo "⚠️ Docker: Installed but daemon not running"
|
||||
echo " Start Docker Desktop or: sudo systemctl start docker"
|
||||
fi
|
||||
else
|
||||
echo "❌ Docker: Not found (required for macOS, optional for Linux)"
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
echo " Install: https://www.docker.com/products/docker-desktop"
|
||||
MISSING_DEPS=$((MISSING_DEPS + 1))
|
||||
else
|
||||
echo " Install: https://docs.docker.com/get-docker/"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Check Alpine tools (for native Alpine Linux)
|
||||
if [ -f /etc/alpine-release ]; then
|
||||
echo ""
|
||||
echo "🏔️ Alpine Linux detected - checking native tools..."
|
||||
|
||||
for tool in abuild alpine-conf syslinux xorriso; do
|
||||
if command -v $tool >/dev/null 2>&1; then
|
||||
echo "✅ $tool: Installed"
|
||||
else
|
||||
echo "❌ $tool: Not found"
|
||||
echo " Install: apk add alpine-sdk abuild alpine-conf syslinux xorriso"
|
||||
MISSING_DEPS=$((MISSING_DEPS + 1))
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
echo ""
|
||||
if [ $MISSING_DEPS -eq 0 ]; then
|
||||
echo "✅ All dependencies satisfied!"
|
||||
exit 0
|
||||
else
|
||||
echo "❌ Missing $MISSING_DEPS dependency/dependencies"
|
||||
echo " Please install missing dependencies before building"
|
||||
exit 1
|
||||
fi
|
||||
65
image-recipe/scripts/convert-iso-to-disk.sh
Executable file
65
image-recipe/scripts/convert-iso-to-disk.sh
Executable file
@@ -0,0 +1,65 @@
|
||||
#!/bin/bash
|
||||
# Convert ISO image to bootable disk image
|
||||
# Creates a raw disk image that can be flashed directly
|
||||
|
||||
set -e
|
||||
|
||||
OUTPUT_DIR="${1:-../results}"
|
||||
ARCHIPELAGO_VERSION="${ARCHIPELAGO_VERSION:-0.1.0}"
|
||||
ARCH="${ARCH:-x86_64}"
|
||||
|
||||
echo "💾 Converting ISO to disk image..."
|
||||
|
||||
# Find ISO file
|
||||
ISO_FILE=$(ls "$OUTPUT_DIR"/*.iso 2>/dev/null | head -1)
|
||||
if [ -z "$ISO_FILE" ]; then
|
||||
echo "❌ No ISO file found in $OUTPUT_DIR"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo " Source ISO: $ISO_FILE"
|
||||
|
||||
# Create disk image (4GB minimum)
|
||||
DISK_SIZE=4096 # 4GB in MB
|
||||
DISK_IMG="$OUTPUT_DIR/archipelago-${ARCHIPELAGO_VERSION}-${ARCH}.img"
|
||||
|
||||
echo " Creating disk image: $DISK_IMG"
|
||||
|
||||
# Check if we have required tools
|
||||
if ! command -v dd >/dev/null 2>&1; then
|
||||
echo "❌ dd not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create empty disk image
|
||||
dd if=/dev/zero of="$DISK_IMG" bs=1M count=$DISK_SIZE 2>/dev/null || {
|
||||
echo "❌ Failed to create disk image"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Note: Full disk image creation with partitions requires:
|
||||
# - parted or fdisk
|
||||
# - mkfs.vfat, mkfs.ext4
|
||||
# - losetup (Linux only)
|
||||
# - grub-install
|
||||
|
||||
# For now, we'll create a simple approach:
|
||||
# The ISO can be used directly, or users can use tools like:
|
||||
# - balenaEtcher (macOS/Linux GUI)
|
||||
# - Rufus (Windows)
|
||||
# - dd (command line)
|
||||
|
||||
echo "⚠️ Full disk image conversion requires additional tools"
|
||||
echo " For now, use the ISO file directly with:"
|
||||
echo " - balenaEtcher (recommended)"
|
||||
echo " - dd command (see docs)"
|
||||
echo ""
|
||||
echo " ISO file: $ISO_FILE"
|
||||
echo " Size: $(du -h "$ISO_FILE" | cut -f1)"
|
||||
|
||||
# Clean up empty image file
|
||||
rm -f "$DISK_IMG"
|
||||
|
||||
echo ""
|
||||
echo "💡 Tip: Use the ISO file with a USB flashing tool"
|
||||
echo " The ISO is bootable and can be flashed directly"
|
||||
Reference in New Issue
Block a user