LoadConfig loads configuration
(cfgFile string)
| 207 | |
| 208 | // LoadConfig loads configuration |
| 209 | func LoadConfig(cfgFile string) (*Config, error) { |
| 210 | if _, err := os.Stat(cfgFile); err != nil { |
| 211 | return nil, err |
| 212 | } |
| 213 | |
| 214 | cfg := new(Config) |
| 215 | if _, err := toml.DecodeFile(cfgFile, cfg); err != nil { |
| 216 | logger.Error(err.Error()) |
| 217 | return nil, err |
| 218 | } |
| 219 | |
| 220 | if cfg.Include.IncludeMirrors != "" { |
| 221 | includedFiles, err := filepath.Glob(cfg.Include.IncludeMirrors) |
| 222 | if err != nil { |
| 223 | logger.Error(err.Error()) |
| 224 | return nil, err |
| 225 | } |
| 226 | for _, f := range includedFiles { |
| 227 | var incMirCfg includedMirrorConfig |
| 228 | if _, err := toml.DecodeFile(f, &incMirCfg); err != nil { |
| 229 | logger.Error(err.Error()) |
| 230 | return nil, err |
| 231 | } |
| 232 | cfg.MirrorsConf = append(cfg.MirrorsConf, incMirCfg.Mirrors...) |
| 233 | } |
| 234 | } |
| 235 | |
| 236 | for _, m := range cfg.MirrorsConf { |
| 237 | if err := recursiveMirrors(cfg, nil, m); err != nil { |
| 238 | return nil, err |
| 239 | } |
| 240 | } |
| 241 | |
| 242 | return cfg, nil |
| 243 | } |
| 244 | |
| 245 | func recursiveMirrors(cfg *Config, parent *mirrorConfig, mirror mirrorConfig) error { |
| 246 | var curMir mirrorConfig |