92 lines
2.1 KiB
Go
92 lines
2.1 KiB
Go
// Package api2sql ...
|
|
//
|
|
// Description : api2sql ...
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 2023-07-31 14:21
|
|
package api2sql
|
|
|
|
import (
|
|
"errors"
|
|
"git.zhangdeman.cn/zhangdeman/database/api2sql/define"
|
|
"git.zhangdeman.cn/zhangdeman/easymap"
|
|
"git.zhangdeman.cn/zhangdeman/util"
|
|
utilDefine "git.zhangdeman.cn/zhangdeman/util/define"
|
|
"git.zhangdeman.cn/zhangdeman/wrapper"
|
|
)
|
|
|
|
var (
|
|
// InstanceManager 实例管理
|
|
InstanceManager *instanceManager
|
|
)
|
|
|
|
func init() {
|
|
InstanceManager = &instanceManager{
|
|
instanceTable: easymap.NewNormal(true),
|
|
supportConfigFileFormat: []string{
|
|
"json",
|
|
"yml",
|
|
"yaml",
|
|
"ini",
|
|
"toml",
|
|
},
|
|
}
|
|
}
|
|
|
|
// instanceManager 实例管理
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 14:21 2023/7/31
|
|
type instanceManager struct {
|
|
instanceTable easymap.EasyMap // 实例存储
|
|
supportConfigFileFormat []string // 支持的配置文件格式
|
|
}
|
|
|
|
// RegisterWithConfig 基于配置进行注册
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 14:26 2023/7/31
|
|
func (im *instanceManager) RegisterWithConfig(instanceConfig *define.Database) error {
|
|
return nil
|
|
}
|
|
|
|
// RegisterWithConfigFile 基于配置文件进行注册
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 14:32 2023/7/31
|
|
func (im *instanceManager) RegisterWithConfigFile(configFileList []string) error {
|
|
return nil
|
|
}
|
|
|
|
// RegisterWithConfigDir 配置的目录
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 14:33 2023/7/31
|
|
func (im *instanceManager) RegisterWithConfigDir(configDir string) error {
|
|
var (
|
|
fileList []*utilDefine.FileInfo
|
|
err error
|
|
)
|
|
|
|
if fileList, err = util.File.ReadDirFileList(configDir, true, false); nil != err {
|
|
return errors.New("config file list read fail : " + err.Error())
|
|
}
|
|
|
|
cfgFileList := make([]string, 0)
|
|
for _, item := range fileList {
|
|
if item.IsDir {
|
|
continue
|
|
}
|
|
if wrapper.Array(im.supportConfigFileFormat).In(item) >= 0 {
|
|
// 支持此格式
|
|
cfgFileList = append(cfgFileList, item.AbsolutePath)
|
|
}
|
|
}
|
|
return im.RegisterWithConfigFile(cfgFileList)
|
|
}
|