diff --git a/config/config.go b/config/config.go index 7ff237e..a85ca0a 100644 --- a/config/config.go +++ b/config/config.go @@ -1,7 +1,8 @@ package config import ( - "log" + "fmt" + "log/slog" "github.com/joho/godotenv" "github.com/kelseyhightower/envconfig" @@ -9,18 +10,21 @@ import ( // Config contains environment variables. type Config struct { - EtcdEndpoint string `envconfig:"ETCD_ENDPOINTS"` + EtcdEndpoint string `envconfig:"ETCD_ENDPOINTS"` } // LoadConfig reads environment variables, populates and returns Config. func LoadConfig() (*Config, error) { if err := godotenv.Load(); err != nil { - log.Println("No .env file found") + slog.Warn("No .env file found") } var c Config - err := envconfig.Process("", &c) + if len(c.EtcdEndpoint) < 1 { + err = fmt.Errorf("missing variable ETCD_ENDPOINTS, not set") + } + return &c, err } diff --git a/main.go b/main.go index 5475375..e660cd5 100644 --- a/main.go +++ b/main.go @@ -25,7 +25,7 @@ func getArgvFilename() string { func main() { _, err := config.LoadConfig() if err != nil { - log.Println("Error from config loader", err) + log.Fatalf("Error from config loader: %s", err) } // setup etcd client