#!/bin/bash
# Start relay service with proper environment loading

cd "$(dirname "$0")"
PROJECT_ROOT="$(cd ../.. && pwd)"

# Try to load NVM if available
if [ -f "$HOME/.nvm/nvm.sh" ]; then
    source "$HOME/.nvm/nvm.sh"
    nvm use node 2>/dev/null || nvm use --lts 2>/dev/null || true
elif [ -f "/usr/local/nvm/nvm.sh" ]; then
    source "/usr/local/nvm/nvm.sh"
    nvm use node 2>/dev/null || nvm use --lts 2>/dev/null || true
fi

# Load parent .env file first
if [ -f "$PROJECT_ROOT/.env" ]; then
    source "$PROJECT_ROOT/.env"
fi

# Use .env.local if it exists (with expanded values), otherwise use .env
if [ -f .env.local ]; then
    export $(cat .env.local | grep -v '^#' | grep -v '^$' | xargs)
elif [ -f .env ]; then
    # Expand ${PRIVATE_KEY} from parent .env if present
    while IFS= read -r line || [ -n "$line" ]; do
        [[ "$line" =~ ^#.*$ ]] && continue
        [[ -z "$line" ]] && continue
        if [[ "$line" =~ \$\{PRIVATE_KEY\} ]] && [ -n "$PRIVATE_KEY" ]; then
            export "${line//\$\{PRIVATE_KEY\}/$PRIVATE_KEY}"
        else
            export "$line"
        fi
    done < .env
fi

# Ensure PRIVATE_KEY is exported
if [ -n "$PRIVATE_KEY" ]; then
    export PRIVATE_KEY
    export RELAYER_PRIVATE_KEY="$PRIVATE_KEY"
fi

# Check if npm is available
if ! command -v npm > /dev/null 2>&1; then
    echo "Error: npm is not found. Please install Node.js and npm first."
    echo "Install with: curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - && sudo apt-get install -y nodejs"
    exit 1
fi

# Start service
npm start
