代码拉取完成,页面将自动刷新
package manager
import (
"errors"
"net/url"
"gitee.com/nonull/eden/pkg/conf"
)
var (
//ErrConfigAddr not config
ErrConfigAddr = errors.New("no config... ")
// ErrInvalidDataSource defines an error that the scheme has been registered
ErrInvalidDataSource = errors.New("invalid data source, please make sure the scheme has been registered")
registry map[string]DataSourceCreatorFunc
//DefaultScheme ..
DefaultScheme string
)
// DataSourceCreatorFunc represents a dataSource creator function
type DataSourceCreatorFunc func() conf.DataSource
func init() {
registry = make(map[string]DataSourceCreatorFunc)
}
// Register registers a dataSource creator function to the registry
func Register(scheme string, creator DataSourceCreatorFunc) {
registry[scheme] = creator
}
// CreateDataSource creates a dataSource witch has been registered
// func CreateDataSource(scheme string) (conf.DataSource, error) {
// creatorFunc, exist := registry[scheme]
// if !exist {
// return nil, ErrInvalidDataSource
// }
// return creatorFunc(), nil
// }
//NewDataSource ..
func NewDataSource(configAddr string) (conf.DataSource, error) {
if configAddr == "" {
return nil, ErrConfigAddr
}
urlObj, err := url.Parse(configAddr)
if err == nil && len(urlObj.Scheme) > 1 {
DefaultScheme = urlObj.Scheme
}
creatorFunc, exist := registry[DefaultScheme]
if !exist {
return nil, ErrInvalidDataSource
}
return creatorFunc(), nil
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。