#!/usr/bin/env python3
"""
Docker entrypoint for MCP adapter.
Chooses between standard and dynamic MCP server based on environment variables.
"""

import os
import sys
import time
import subprocess
import logging

# Set up logging
logging.basicConfig(level=logging.INFO, format='%(message)s')
logger = logging.getLogger(__name__)

# Apply startup delay if configured
startup_delay = os.environ.get('STARTUP_DELAY', '0')
try:
    delay = int(startup_delay)
    if delay > 0:
        logger.info(f"Applying startup delay of {delay} seconds...")
        time.sleep(delay)
except ValueError:
    pass

# Check if dynamic mode is enabled
dynamic_mode = os.environ.get('MCP_DYNAMIC_MODE', '').lower() == 'true'
update_method = os.environ.get('MCP_UPDATE_METHOD', '')
bundle_name = os.environ.get('BUNDLE_NAME', '')

if dynamic_mode or update_method:
    logger.info(f"Starting Dynamic MCP Server with update method: {update_method or 'websocket'}")
    if bundle_name:
        logger.info(f"Bundle-specific mode: {bundle_name}")
    # Run the dynamic server
    subprocess.run([sys.executable, "/app/mcp_adapter/run_dynamic_server.py"])
else:
    logger.info("Starting Standard MCP Server")
    if bundle_name:
        logger.info(f"Bundle-specific mode: {bundle_name}")
    # Run the standard server
    subprocess.run([sys.executable, "-m", "mcp_adapter.server"])