code: func FromFile(name string, opts ...Option) core.ConfigProvider {
  	return func() ([]core.ConfigBackend, error) {
  		backend, err := newBackend(opts...)
  		if err != nil {
  			return nil, err
  		}
  
  		if name == "" {
  			return nil, errors.New("filename is required")
  		}
  
  		// create new viper
  		backend.configViper.SetConfigFile(name)
  
  		// If a config file is found, read it in.
  		err = backend.configViper.MergeInConfig()
  		if err != nil {
  			return nil, errors.Wrapf(err, "loading config file failed: %s", name)
  		}
  
  		setLogLevel(backend)
  
  		return []core.ConfigBackend{backend}, nil
  	}
  }
docs: // FromFile reads from named config file