package main import ( "context" "flag" "log" "os/signal" "syscall" "github.com/mrhid6/keymanager/agent/internal/config" agentsync "github.com/mrhid6/keymanager/agent/internal/sync" ) var Version = "dev" func main() { genKey := flag.String("generate-key", "", "Generate SSH keypair and upload with this label") flag.Parse() cfg, err := config.Load() if err != nil { log.Fatalf("failed to load config: %v", err) } if *genKey != "" { if err := agentsync.GenerateAndUpload(cfg, *genKey); err != nil { log.Fatalf("key generation failed: %v", err) } return } ctx, stop := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM) defer stop() log.Printf("keymanager-agent %s starting (server=%s, poll=%s)", Version, cfg.ServerURL, cfg.PollInterval) if err := agentsync.Run(ctx, cfg); err != nil { log.Fatalf("agent error: %v", err) } }