func loadConfigs(paths []string, o *config.Config) (*config.Config, error) {
	finalC := config.DefaultConfig()

	for _, path := range paths {
		c, err := config.FromPath(path)
		if err != nil {
			return nil, err
		}

		finalC = finalC.Merge(c)
	}

	finalC = finalC.Merge(o)
	finalC.Finalize()
	return finalC, nil
}
func loadConfigs(paths []string, o *config.Config) (*config.Config, error) {
	finalC := config.DefaultConfig()

	for _, path := range paths {
		c, err := config.FromPath(path)
		if err != nil {
			return nil, err
		}

		finalC = finalC.Merge(c)
	}

	finalC = finalC.Merge(o)
	finalC.Finalize()
	return finalC, nil
}
func loadConfigs ( paths [ ] string , o * config . Config ) ( * config . Config , error ) { finalC := config . DefaultConfig ( ) for _ , path := range paths { c , err := config . FromPath ( path ) if err != nil { return nil , err } finalC = finalC . Merge ( c ) } finalC = finalC . Merge ( o ) finalC . Finalize ( ) return finalC , nil }
// loadConfigs loads the configuration from the list of paths. The optional
// configuration is the list of overrides to apply at the very end, taking
// precedence over any configurations that were loaded from the paths. If any
// errors occur when reading or parsing those sub-configs, it is returned.
loadConfigs loads the configuration from the list of paths . The optional configuration is the list of overrides to apply at the very end taking precedence over any configurations that were loaded from the paths . If any errors occur when reading or parsing those sub - configs it is returned .