feat: impl config loading

This commit is contained in:
2025-11-29 18:09:41 +00:00
parent fd3b2d3908
commit ab4c14bc09
8 changed files with 251 additions and 85 deletions

View File

@@ -1,19 +1,27 @@
package main
import (
"flag"
"fmt"
"log"
"os"
"github.com/get-drexa/drexa/internal/drexa"
"github.com/joho/godotenv"
)
func main() {
_ = godotenv.Load()
configPath := flag.String("config", "", "path to config file (required)")
flag.Parse()
config, err := drexa.ServerConfigFromEnv()
if *configPath == "" {
fmt.Fprintln(os.Stderr, "error: --config is required")
flag.Usage()
os.Exit(1)
}
config, err := drexa.ConfigFromFile(*configPath)
if err != nil {
log.Fatal(err)
log.Fatalf("failed to load config: %v", err)
}
server, err := drexa.NewServer(*config)
@@ -21,5 +29,6 @@ func main() {
log.Fatal(err)
}
log.Fatal(server.Listen(fmt.Sprintf(":%d", config.Port)))
log.Printf("starting server on :%d", config.Server.Port)
log.Fatal(server.Listen(fmt.Sprintf(":%d", config.Server.Port)))
}