#!/bin/bash
set -e

# Development setup script for Legion Protocol ecosystem
# This script switches between local development and production dependencies

COMMAND=$1

show_help() {
    echo "Legion Protocol Development Setup"
    echo ""
    echo "Usage: $0 [local|production]"
    echo ""
    echo "Commands:"
    echo "  local       - Switch to local path dependencies for development"
    echo "  production  - Switch to crates.io dependencies for production"
    echo ""
    echo "Examples:"
    echo "  $0 local      # Use local dependencies for development"
    echo "  $0 production # Use published crates for production builds"
}

switch_to_local() {
    echo "🔧 Switching to local development dependencies..."
    
    # Update legionnaire
    if [ -f "legionnaire/Cargo.toml" ]; then
        echo "📝 Updating legionnaire..."
        sed -i.bak 's/^legion-protocol = { version = "0\.1"/# legion-protocol = { version = "0.1"/' legionnaire/Cargo.toml
        sed -i.bak 's/^phalanx = { version = "0\.1"/# phalanx = { version = "0.1"/' legionnaire/Cargo.toml
        sed -i.bak 's/^# legion-protocol = { path = "\.\.\/legion-protocol"/legion-protocol = { path = "..\/legion-protocol"/' legionnaire/Cargo.toml
        sed -i.bak 's/^# phalanx = { path = "\.\.\/phalanx"/phalanx = { path = "..\/phalanx"/' legionnaire/Cargo.toml
        rm -f legionnaire/Cargo.toml.bak
    fi
    
    # Update legion-server (centurion)
    if [ -f "centurion/Cargo.toml" ]; then
        echo "📝 Updating legion-server (centurion)..."
        sed -i.bak 's/^legion-protocol = { version = "0\.1"/# legion-protocol = { version = "0.1"/' centurion/Cargo.toml
        sed -i.bak 's/^phalanx = { version = "0\.1"/# phalanx = { version = "0.1"/' centurion/Cargo.toml
        sed -i.bak 's/^# legion-protocol = { path = "\.\.\/legion-protocol"/legion-protocol = { path = "..\/legion-protocol"/' centurion/Cargo.toml
        sed -i.bak 's/^# phalanx = { path = "\.\.\/phalanx"/phalanx = { path = "..\/phalanx"/' centurion/Cargo.toml
        rm -f centurion/Cargo.toml.bak
    fi
    
    echo "✅ Switched to local development dependencies"
    echo "💡 You can now edit phalanx and legion-protocol locally and see changes immediately"
}

switch_to_production() {
    echo "🏭 Switching to production dependencies..."
    
    # Update legionnaire
    if [ -f "legionnaire/Cargo.toml" ]; then
        echo "📝 Updating legionnaire..."
        sed -i.bak 's/^# legion-protocol = { version = "0\.1"/legion-protocol = { version = "0.1"/' legionnaire/Cargo.toml
        sed -i.bak 's/^# phalanx = { version = "0\.1"/phalanx = { version = "0.1"/' legionnaire/Cargo.toml
        sed -i.bak 's/^legion-protocol = { path = "\.\.\/legion-protocol"/# legion-protocol = { path = "..\/legion-protocol"/' legionnaire/Cargo.toml
        sed -i.bak 's/^phalanx = { path = "\.\.\/phalanx"/# phalanx = { path = "..\/phalanx"/' legionnaire/Cargo.toml
        rm -f legionnaire/Cargo.toml.bak
    fi
    
    # Update legion-server (centurion)
    if [ -f "centurion/Cargo.toml" ]; then
        echo "📝 Updating legion-server (centurion)..."
        sed -i.bak 's/^# legion-protocol = { version = "0\.1"/legion-protocol = { version = "0.1"/' centurion/Cargo.toml
        sed -i.bak 's/^# phalanx = { version = "0\.1"/phalanx = { version = "0.1"/' centurion/Cargo.toml
        sed -i.bak 's/^legion-protocol = { path = "\.\.\/legion-protocol"/# legion-protocol = { path = "..\/legion-protocol"/' centurion/Cargo.toml
        sed -i.bak 's/^phalanx = { path = "\.\.\/phalanx"/# phalanx = { path = "..\/phalanx"/' centurion/Cargo.toml
        rm -f centurion/Cargo.toml.bak
    fi
    
    echo "✅ Switched to production dependencies"
    echo "📦 Dependencies will now be fetched from crates.io"
}

case $COMMAND in
    local)
        switch_to_local
        ;;
    production)
        switch_to_production
        ;;
    *)
        show_help
        exit 1
        ;;
esac