diff --git a/override/uncity.go b/override/uncity.go index 057b2f28..7819015e 100644 --- a/override/uncity.go +++ b/override/uncity.go @@ -198,12 +198,15 @@ func portIndexer(y any, p tree.Path) (string, error) { return "", nil } -func envFileIndexer(y any, _ tree.Path) (string, error) { +func envFileIndexer(y any, p tree.Path) (string, error) { switch value := y.(type) { case string: return value, nil case map[string]any: - return value["path"].(string), nil + if pathValue, ok := value["path"]; ok { + return pathValue.(string), nil + } + return "", fmt.Errorf("environment path attribut %s is missing", p) } return "", nil } diff --git a/types/stringOrList.go b/types/stringOrList.go index 059043fb..a6720df0 100644 --- a/types/stringOrList.go +++ b/types/stringOrList.go @@ -28,7 +28,11 @@ func (l *StringList) DecodeMapstructure(value interface{}) error { case []interface{}: list := make([]string, len(v)) for i, e := range v { - list[i] = e.(string) + val, ok := e.(string) + if !ok { + return fmt.Errorf("invalid type %T for string list", value) + } + list[i] = val } *l = list default: