(fileName string)
| 114 | var Current Config |
| 115 | |
| 116 | func Load(fileName string) { |
| 117 | allowedExts := []string{".yml", ".yaml"} |
| 118 | if !isAllowedExt(allowedExts, fileName) { |
| 119 | log.Fatal().Msgf("config extension not allowed: %v\n", allowedExts) |
| 120 | } |
| 121 | mapDelim := '.' |
| 122 | fileConfig, err := getFile(mapDelim, fileName) |
| 123 | if err != nil { |
| 124 | log.Fatal().Err(err).Msg("get config") |
| 125 | } |
| 126 | builderMap := fileConfig.Builder.MakeEnabled() |
| 127 | if len(builderMap) < 1 { |
| 128 | log.Fatal().Msg("init: no builders defined") |
| 129 | } |
| 130 | builderKey := make([]byte, 32) |
| 131 | if _, err := rand.Read(builderKey); err != nil { |
| 132 | log.Fatal().Err(err).Msg("init: error generating builder key") |
| 133 | } |
| 134 | profile, err := getProfileFromEnv(mapDelim) |
| 135 | if err != nil { |
| 136 | log.Fatal().Err(err).Msg("init: error checking for signing profile from envvars") |
| 137 | } |
| 138 | Current = Config{ |
| 139 | Builder: builderMap, |
| 140 | BuilderKey: hex.EncodeToString(builderKey), |
| 141 | File: fileConfig, |
| 142 | EnvProfile: profile, |
| 143 | } |
| 144 | } |
| 145 | |
| 146 | // Loads a single signing profile entirely from environment variables. |
| 147 | // Intended for use with Heroku without persistent storage. |
no test coverage detected