Return error if etcd_endpoints variable is missing

This commit is contained in:
2025-01-18 12:07:08 +01:00
parent 78b8c2d48a
commit b885893879
2 changed files with 9 additions and 5 deletions

View File

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

View File

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