database/api2sql/instance_manager.go

92 lines
2.1 KiB
Go
Raw Normal View History

// 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)
}