JCS-pub/client/internal/config/config.go

46 lines
1.7 KiB
Go

package config
import (
"gitlink.org.cn/cloudream/common/pkgs/logger"
"gitlink.org.cn/cloudream/common/pkgs/mq"
"gitlink.org.cn/cloudream/common/utils/config"
"gitlink.org.cn/cloudream/jcs-pub/client/internal/db"
"gitlink.org.cn/cloudream/jcs-pub/client/internal/downloader"
"gitlink.org.cn/cloudream/jcs-pub/client/internal/downloader/strategy"
"gitlink.org.cn/cloudream/jcs-pub/client/internal/http"
mntcfg "gitlink.org.cn/cloudream/jcs-pub/client/internal/mount/config"
"gitlink.org.cn/cloudream/jcs-pub/client/internal/ticktock"
stgglb "gitlink.org.cn/cloudream/jcs-pub/common/globals"
"gitlink.org.cn/cloudream/jcs-pub/common/pkgs/connectivity"
hubrpc "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/grpc/hub"
)
type Config struct {
Local stgglb.LocalMachineInfo `json:"local"`
HubGRPC hubrpc.PoolConfig `json:"hubGRPC"`
Logger logger.Config `json:"logger"`
DB db.Config `json:"db"`
RabbitMQ mq.Config `json:"rabbitMQ"`
Connectivity connectivity.Config `json:"connectivity"`
Downloader downloader.Config `json:"downloader"`
DownloadStrategy strategy.Config `json:"downloadStrategy"`
TickTock ticktock.Config `json:"tickTock"`
HTTP *http.Config `json:"http"`
Mount *mntcfg.Config `json:"mount"`
}
var cfg Config
// Init 初始化client
// TODO 这里的modeulName参数弄成可配置的更好
func Init(configPath string) error {
if configPath == "" {
return config.DefaultLoad("client", &cfg)
}
return config.Load(configPath, &cfg)
}
func Cfg() *Config {
return &cfg
}