// Package main implements the fetch_ml API server package main import ( "flag" "fmt" "log" "os" "github.com/jfraeys/fetch_ml/internal/api" ) // Build variables injected at build time var ( BuildHash = "unknown" BuildTime = "unknown" ) func main() { configFile := flag.String("config", "configs/api/dev.yaml", "Configuration file path") apiKey := flag.String("api-key", "", "API key for authentication") showVersion := flag.Bool("version", false, "Show version and build info") verifyBuild := flag.Bool("verify", false, "Verify build integrity") flag.Parse() // Handle version display if *showVersion { fmt.Printf("fetch_ml API Server\n") fmt.Printf(" Build Hash: %s\n", BuildHash) fmt.Printf(" Build Time: %s\n", BuildTime) os.Exit(0) } // Handle build verification (placeholder - always true for now) if *verifyBuild { fmt.Printf("Build verification: OK\n") fmt.Printf(" Build Hash: %s\n", BuildHash) os.Exit(0) } // Create and start server server, err := api.NewServer(*configFile) if err != nil { log.Fatalf("Failed to create server: %v", err) } if err := server.Start(); err != nil { log.Fatalf("Failed to start server: %v", err) } // Wait for shutdown server.WaitForShutdown() // Reserved for future authentication enhancements _ = apiKey }