feat: load explicit configuration references and remove implicit env overlays
This commit is contained in:
@@ -2,6 +2,7 @@ package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"flag"
|
||||
"log"
|
||||
"os"
|
||||
"os/signal"
|
||||
@@ -42,6 +43,7 @@ func registerRoutes(application *omni.App, users service.UserRepository, logger
|
||||
}
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM)
|
||||
defer stop()
|
||||
if err := runReference(ctx); err != nil {
|
||||
@@ -49,29 +51,9 @@ func main() {
|
||||
}
|
||||
}
|
||||
|
||||
func referenceConfig() (omni.Config, error) {
|
||||
settings, err := omni.LoadConfig("")
|
||||
if err != nil {
|
||||
return settings, err
|
||||
}
|
||||
// Preserve the example's loopback default and legacy address variable.
|
||||
if strings.TrimSpace(os.Getenv("GO_OMNI_HTTP_ADDR")) == "" {
|
||||
settings.Address = strings.TrimSpace(os.Getenv("GO_OMNI_ADDR"))
|
||||
if settings.Address == "" {
|
||||
settings.Address = "127.0.0.1:8080"
|
||||
}
|
||||
}
|
||||
if settings.Log.Service == "" {
|
||||
settings.Log.Service = "reference-api"
|
||||
}
|
||||
if settings.Log.Environment == "" {
|
||||
settings.Log.Environment = "local"
|
||||
}
|
||||
if strings.TrimSpace(os.Getenv("GO_OMNI_LOG_OUTPUT")) == "" {
|
||||
settings.Log.Output = "stdout"
|
||||
}
|
||||
return settings, nil
|
||||
}
|
||||
var configPath = flag.String("config", "examples/reference/config.yaml", "configuration file")
|
||||
|
||||
func referenceConfig() (omni.Config, error) { return omni.LoadConfig(*configPath) }
|
||||
|
||||
func runReference(ctx context.Context) error {
|
||||
settings, err := referenceConfig()
|
||||
@@ -106,10 +88,9 @@ func openUsers(ctx context.Context, logger *logx.Logger) (service.UserRepository
|
||||
if strings.TrimSpace(os.Getenv("GO_OMNI_DB_DSN")) == "" {
|
||||
return repository.NewMemoryUsers(), func() error { return nil }, "memory", nil
|
||||
}
|
||||
cfg, err := database.ConfigFromEnv("GO_OMNI_DB_")
|
||||
if err != nil {
|
||||
return nil, nil, "", err
|
||||
}
|
||||
cfg := database.DefaultConfig()
|
||||
cfg.Driver = "mysql"
|
||||
cfg.DSN = os.Getenv("GO_OMNI_DB_DSN")
|
||||
db, err := database.Open(ctx, cfg)
|
||||
if err != nil {
|
||||
return nil, nil, "", err
|
||||
|
||||
Reference in New Issue
Block a user