@@ -25,30 +25,44 @@ import (
2525 epsForms "github.com/iris-connect/eps/forms"
2626 "github.com/kiprotect/go-helpers/forms"
2727 "github.com/kiprotect/go-helpers/settings"
28+ "io/fs"
2829 "os"
30+ "path/filepath"
2931 "strings"
3032)
3133
32- var EnvSettingsName = "EPS_SETTINGS"
33-
34- func SettingsPaths () []string {
35- envValue := os .Getenv (EnvSettingsName )
36- if envValue == "" {
37- return []string {}
34+ func SettingsPaths (envSettingsName string ) ([]string , fs.FS , error ) {
35+ if paths , err := RealSettingsPaths (envSettingsName ); err != nil {
36+ return nil , nil , err
37+ } else {
38+ modifiedPaths := make ([]string , len (paths ))
39+ for i , path := range paths {
40+ modifiedPaths [i ] = path [1 :]
41+ }
42+ return modifiedPaths , os .DirFS ("/" ), nil
3843 }
44+ }
45+
46+ func RealSettingsPaths (envSettingsName string ) ([]string , error ) {
47+ envValue := os .Getenv (envSettingsName )
3948 values := strings .Split (envValue , ":" )
4049 sanitizedValues := make ([]string , 0 , len (values ))
4150 for _ , value := range values {
4251 if value == "" {
4352 continue
4453 }
54+ var err error
55+ if value , err = filepath .Abs (value ); err != nil {
56+ return nil , err
57+ }
4558 sanitizedValues = append (sanitizedValues , value )
4659 }
47- return sanitizedValues
60+ return sanitizedValues , nil
4861}
4962
50- func Settings (settingsPaths []string , definitions * eps.Definitions ) (* eps.Settings , error ) {
51- if rawSettings , err := settings .MakeSettings (settingsPaths ); err != nil {
63+ func Settings (settingsPaths []string , fs fs.FS , definitions * eps.Definitions ) (* eps.Settings , error ) {
64+ eps .Log .Info (settingsPaths )
65+ if rawSettings , err := settings .MakeSettings (settingsPaths , fs ); err != nil {
5266 return nil , err
5367 } else if params , err := epsForms .SettingsForm .ValidateWithContext (rawSettings .Values , map [string ]interface {}{"definitions" : definitions }); err != nil {
5468 return nil , err
0 commit comments