MCPcopy Index your code
hub / github.com/tuna/tunasync / LoadConfig

Function LoadConfig

worker/config.go:209–243  ·  view source on GitHub ↗

LoadConfig loads configuration

(cfgFile string)

Source from the content-addressed store, hash-verified

207
208// LoadConfig loads configuration
209func 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
245func recursiveMirrors(cfg *Config, parent *mirrorConfig, mirror mirrorConfig) error {
246 var curMir mirrorConfig

Callers 3

startWorkerFunction · 0.92
mainFunction · 0.92
TestConfigFunction · 0.70

Calls 2

recursiveMirrorsFunction · 0.85
ErrorMethod · 0.80

Tested by 1

TestConfigFunction · 0.56