package runtimecfg import ( "fmt" "os" "strconv" "gopkg.in/yaml.v2" ) // Load substitutes YAML scalars from the service's separately loaded .env. func Load(path string, target interface{}) error { raw, err := os.ReadFile(path) if err != nil { return err } var missing string expanded := os.Expand(string(raw), func(key string) string { value, ok := os.LookupEnv(key) if !ok || value == "" { missing = key } return strconv.Quote(value) }) if missing != "" { return fmt.Errorf("required environment variable is missing: %s", missing) } return yaml.Unmarshal([]byte(expanded), target) }