refactor(print): 将 print 包重命名为 printer 并更新所有引用 将项目中的 print 包统一重命名为 printer,以避免与标准库或第三方库产生命名冲突。同时, 更新了所有相关模块对该包的引用,确保功能一致性和代码可维护性。 涉及文件包括: - conf/new.go - infra/service.go - service/register.go - service/service.go - with/databases.go - with/etcd.go - with/memory.go - with/redis.go 此外,删除了以下已废弃或未使用的代码文件: - cmd/cmd.go - data/map_float.go - data/map_string.go - oplog/new.go - oplog/types.go - print/print.go - utils/ext.go ```
92 lines
2.1 KiB
Go
92 lines
2.1 KiB
Go
package conf
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
"time"
|
|
|
|
"math/rand/v2"
|
|
|
|
"git.apinb.com/bsm-sdk/core/env"
|
|
"git.apinb.com/bsm-sdk/core/printer"
|
|
"git.apinb.com/bsm-sdk/core/utils"
|
|
"git.apinb.com/bsm-sdk/core/vars"
|
|
yaml "gopkg.in/yaml.v3"
|
|
)
|
|
|
|
func New(srvKey string, cfg any) {
|
|
env.NewEnv()
|
|
|
|
// 设置服务键
|
|
vars.ServiceKey = srvKey
|
|
|
|
// 获取主机名
|
|
vars.HostName, _ = os.Hostname()
|
|
|
|
// 构造配置文件路径,输出配置文件信息
|
|
cfp := fmt.Sprintf("%s_%s.yaml", strings.ToLower(srvKey), env.Runtime.Mode)
|
|
cfp = filepath.Join(env.Runtime.Prefix, "etc", cfp)
|
|
|
|
// 配置文件不存在则读取Workspace配置文件
|
|
if !utils.PathExists(cfp) {
|
|
cfp = fmt.Sprintf("workspace_%s_%s.yaml", strings.ToLower(env.Runtime.Workspace), env.Runtime.Mode)
|
|
cfp = filepath.Join(env.Runtime.Prefix, "etc", cfp)
|
|
}
|
|
|
|
printer.Info("[BSM - %s] Config File: %s", srvKey, cfp)
|
|
printer.Info("[BSM - %s] Check Configure ...", vars.ServiceKey)
|
|
|
|
// 读取配置文件内容
|
|
yamlFile, err := os.ReadFile(cfp)
|
|
if err != nil {
|
|
log.Fatalf("ERROR: %v", err)
|
|
}
|
|
|
|
// 替换环境变量
|
|
yamlString := os.ExpandEnv(string(yamlFile))
|
|
|
|
// 检查配置文件中是否存在Service和Port字段
|
|
if !strings.Contains(yamlString, "Service:") {
|
|
log.Fatalln("ERROR: Service Not Nil", cfp)
|
|
}
|
|
|
|
// 解析YAML
|
|
err = yaml.Unmarshal([]byte(yamlString), cfg)
|
|
if err != nil {
|
|
log.Fatalf("ERROR: %v", err)
|
|
}
|
|
}
|
|
|
|
func NotNil(values ...string) {
|
|
for _, value := range values {
|
|
if strings.TrimSpace(value) == "" {
|
|
log.Fatalln("ERROR:Must config key not nil")
|
|
}
|
|
}
|
|
}
|
|
|
|
func PrintInfo(addr string) {
|
|
printer.Success("[BSM - %s] Config Check Success.", vars.ServiceKey)
|
|
printer.Info("[BSM - %s] Service Name: %s", vars.ServiceKey, vars.ServiceKey)
|
|
printer.Info("[BSM - %s] Runtime Mode: %s", vars.ServiceKey, env.Runtime.Mode)
|
|
}
|
|
|
|
func CheckPort(port string) string {
|
|
if port == "" {
|
|
r := rand.New(rand.NewPCG(1000, uint64(time.Now().UnixNano())))
|
|
p := r.IntN(65535-1024) + 1024 // 生成1024到65535之间的随机端口
|
|
return utils.Int2String(p)
|
|
}
|
|
return port
|
|
}
|
|
|
|
func CheckIP(ip string) string {
|
|
if ip == "" {
|
|
return utils.GetLocationIP()
|
|
}
|
|
return ip
|
|
}
|