(config map[string]any, configDetails types.ConfigDetails)
| 153 | } |
| 154 | |
| 155 | func loadSections(config map[string]any, configDetails types.ConfigDetails) (*types.Config, error) { |
| 156 | var err error |
| 157 | cfg := types.Config{ |
| 158 | Version: schema.Version(config), |
| 159 | } |
| 160 | |
| 161 | loaders := []struct { |
| 162 | key string |
| 163 | fnc func(config map[string]any) error |
| 164 | }{ |
| 165 | { |
| 166 | key: "services", |
| 167 | fnc: func(config map[string]any) error { |
| 168 | cfg.Services, err = LoadServices(config, configDetails.WorkingDir, configDetails.LookupEnv) |
| 169 | return err |
| 170 | }, |
| 171 | }, |
| 172 | { |
| 173 | key: "networks", |
| 174 | fnc: func(config map[string]any) error { |
| 175 | cfg.Networks, err = LoadNetworks(config, configDetails.Version) |
| 176 | return err |
| 177 | }, |
| 178 | }, |
| 179 | { |
| 180 | key: "volumes", |
| 181 | fnc: func(config map[string]any) error { |
| 182 | cfg.Volumes, err = LoadVolumes(config, configDetails.Version) |
| 183 | return err |
| 184 | }, |
| 185 | }, |
| 186 | { |
| 187 | key: "secrets", |
| 188 | fnc: func(config map[string]any) error { |
| 189 | cfg.Secrets, err = LoadSecrets(config, configDetails) |
| 190 | return err |
| 191 | }, |
| 192 | }, |
| 193 | { |
| 194 | key: "configs", |
| 195 | fnc: func(config map[string]any) error { |
| 196 | cfg.Configs, err = LoadConfigObjs(config, configDetails) |
| 197 | return err |
| 198 | }, |
| 199 | }, |
| 200 | } |
| 201 | for _, loader := range loaders { |
| 202 | if err := loader.fnc(getSection(config, loader.key)); err != nil { |
| 203 | return nil, err |
| 204 | } |
| 205 | } |
| 206 | cfg.Extras = getExtras(config) |
| 207 | return &cfg, nil |
| 208 | } |
| 209 | |
| 210 | func getSection(config map[string]any, key string) map[string]any { |
| 211 | section, ok := config[key] |
no test coverage detected
searching dependent graphs…