package main

import (
	"flag"
	"log"
	"os"
	"os/signal"
	"syscall"

	"tailscale-clone/internal/controller"
)

func main() {
	var (
		port     = flag.Int("port", 8080, "Controller port")
		dataDir  = flag.String("data-dir", "./data", "Data directory")
		webPort  = flag.Int("web-port", 8081, "Web interface port")
	)
	flag.Parse()

	// Create controller
	ctrl, err := controller.New(*port, *dataDir, *webPort)
	if err != nil {
		log.Fatalf("Failed to create controller: %v", err)
	}

	// Start controller
	if err := ctrl.Start(); err != nil {
		log.Fatalf("Failed to start controller: %v", err)
	}

	log.Printf("Controller started on port %d", *port)
	log.Printf("Web interface available on port %d", *webPort)

	// Wait for shutdown signal
	sigChan := make(chan os.Signal, 1)
	signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)
	<-sigChan

	log.Println("Shutting down controller...")
	ctrl.Stop()
} 