package main import ( "flag" "log" "os" "os/signal" "syscall" "github.com/etoilepolaire/agent/internal/agent" "github.com/etoilepolaire/agent/internal/config" ) func main() { // Configuration des flags serverURL := flag.String("server", "http://localhost:8000", "URL du serveur central") agentName := flag.String("name", "", "Nom de l'agent") flag.Parse() if *agentName == "" { log.Fatal("Le nom de l'agent est requis") } // Chargement de la configuration cfg := config.Config{ ServerURL: *serverURL, Name: *agentName, } // Création de l'agent a, err := agent.New(cfg) if err != nil { log.Fatalf("Erreur lors de la création de l'agent: %v", err) } // Gestion des signaux pour un arrêt propre sigChan := make(chan os.Signal, 1) signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM) // Démarrage de l'agent go func() { if err := a.Start(); err != nil { log.Printf("Erreur lors du démarrage de l'agent: %v", err) } }() // Attente du signal d'arrêt <-sigChan log.Println("Arrêt de l'agent...") if err := a.Stop(); err != nil { log.Printf("Erreur lors de l'arrêt de l'agent: %v", err) } }