#!/bin/bash
#
# Setup development environment on Archipelago target machine
#
# Run this ON the HP ProDesk via SSH:
#   curl -sSL https://raw.githubusercontent.com/.../setup-target-dev.sh | bash
# Or copy and run locally:
#   scp scripts/setup-target-dev.sh archipelago@192.168.1.228:~/
#   ssh archipelago@192.168.1.228 'bash ~/setup-target-dev.sh'
#

set -e

echo "╔════════════════════════════════════════════════════════════════╗"
echo "║  Setting up Archipelago Development Environment               ║"
echo "╚════════════════════════════════════════════════════════════════╝"
echo ""

# Update packages
echo "📦 Updating packages..."
sudo apt update

# Install Node.js (for Vue.js frontend)
echo ""
echo "📦 Installing Node.js..."
if ! command -v node &> /dev/null; then
    curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
    sudo apt install -y nodejs
else
    echo "   Node.js already installed: $(node --version)"
fi

# Install Rust (for backend)
echo ""
echo "📦 Installing Rust..."
if ! command -v cargo &> /dev/null; then
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
    source ~/.cargo/env
else
    echo "   Rust already installed: $(rustc --version)"
fi

# Install build tools
echo ""
echo "📦 Installing build tools..."
sudo apt install -y \
    build-essential \
    pkg-config \
    libssl-dev \
    git

# Create development directory
echo ""
echo "📁 Creating development directory..."
mkdir -p ~/archy

# Fix XDG_RUNTIME_DIR for rootless Podman (add to bashrc)
if ! grep -q "XDG_RUNTIME_DIR" ~/.bashrc; then
    echo ""
    echo "🔧 Fixing Podman rootless setup..."
    cat >> ~/.bashrc << 'EOF'

# Fix for rootless Podman
if [ -z "$XDG_RUNTIME_DIR" ]; then
    export XDG_RUNTIME_DIR=/run/user/$(id -u)
    if [ ! -d "$XDG_RUNTIME_DIR" ]; then
        sudo mkdir -p "$XDG_RUNTIME_DIR"
        sudo chown $(whoami):$(whoami) "$XDG_RUNTIME_DIR"
        sudo chmod 700 "$XDG_RUNTIME_DIR"
    fi
fi
EOF
fi

# Enable user lingering for Podman
sudo loginctl enable-linger archipelago 2>/dev/null || true

echo ""
echo "╔════════════════════════════════════════════════════════════════╗"
echo "║   ✅ Development environment ready!                           ║"
echo "╚════════════════════════════════════════════════════════════════╝"
echo ""
echo "Installed:"
echo "  • Node.js: $(node --version 2>/dev/null || echo 'not found')"
echo "  • npm: $(npm --version 2>/dev/null || echo 'not found')"
echo "  • Rust: $(rustc --version 2>/dev/null || echo 'not found')"
echo "  • Cargo: $(cargo --version 2>/dev/null || echo 'not found')"
echo ""
echo "Next steps:"
echo "  1. Log out and back in (or run: source ~/.bashrc)"
echo "  2. From your Mac, run: ./scripts/deploy-to-target.sh"
echo "  3. To start Vue.js dev server: cd ~/archy/neode-ui && npm run dev -- --host 0.0.0.0"
echo ""
