// @title HeroLauncher API
// @version 1.0
// @description HeroLauncher API provides endpoints for managing services, processes, and system resources
// @termsOfService http://swagger.io/terms/

// @contact.name HeroLauncher Support
// @contact.url https://github.com/freeflowuniverse/herolauncher
// @contact.email support@herolauncher.io

// @license.name MIT
// @license.url https://opensource.org/licenses/MIT

// @host localhost:9021
// @BasePath /
// @schemes http https

// @securityDefinitions.apikey ApiKeyAuth
// @in header
// @name Authorization

package main

import (
	"flag"
	"fmt"
	"log"
	"os"
)

func main() {
	// Parse command-line flags
	portFlag := flag.String("port", "", "Port to run the server on")
	flag.Parse()

	// Initialize HeroLauncher with default configuration
	config := herolauncher.DefaultConfig()

	// Override with command-line flags if provided
	if *portFlag != "" {
		config.Port = *portFlag
	}

	// Override with environment variables if provided
	if port := os.Getenv("PORT"); port != "" {
		config.Port = port
	}

	// Create HeroLauncher instance
	launcher := herolauncher.New(config)

	// Start the server
	fmt.Printf("Starting HeroLauncher on port %s...\n", config.Port)
	if err := launcher.Start(); err != nil {
		log.Fatalf("Failed to start HeroLauncher: %v", err)
	}
}
