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.
This commit is contained in:
Claude 2025-11-05 11:14:54 +00:00
parent 9b0428638c
commit 4aaa889634

View file

@ -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)