From 4aaa889634937b1acc7c549186f33eba811854e8 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 5 Nov 2025 11:14:54 +0000 Subject: [PATCH] Add CLI flags for port, host, and database configuration - Added --port flag to override SERVER_PORT - Added --host flag to override SERVER_HOST - Added --db flag to override DB_DRIVER - Added --db-name flag to override DB_NAME CLI flags take precedence over environment variables for easier deployment without Docker. --- cmd/tracks/main.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/cmd/tracks/main.go b/cmd/tracks/main.go index 9cf8b286..61982ff0 100644 --- a/cmd/tracks/main.go +++ b/cmd/tracks/main.go @@ -1,6 +1,7 @@ package main import ( + "flag" "fmt" "log" @@ -13,12 +14,33 @@ import ( ) func main() { + // Parse command line flags + port := flag.Int("port", 0, "Port to run the server on (overrides SERVER_PORT env var)") + host := flag.String("host", "", "Host to bind to (overrides SERVER_HOST env var)") + dbDriver := flag.String("db", "", "Database driver: sqlite, mysql, or postgres (overrides DB_DRIVER)") + dbName := flag.String("db-name", "", "Database name or path (overrides DB_NAME)") + flag.Parse() + // Load configuration cfg, err := config.Load() if err != nil { log.Fatal("Failed to load configuration:", err) } + // Override config with CLI flags if provided + if *port != 0 { + cfg.Server.Port = *port + } + if *host != "" { + cfg.Server.Host = *host + } + if *dbDriver != "" { + cfg.Database.Driver = *dbDriver + } + if *dbName != "" { + cfg.Database.Name = *dbName + } + // Initialize database if err := database.Initialize(&cfg.Database); err != nil { log.Fatal("Failed to initialize database:", err)