ai update.
This commit is contained in:
21
conf/new.go
21
conf/new.go
@@ -1,3 +1,5 @@
|
||||
// Package conf 提供配置管理功能
|
||||
// 支持YAML配置文件加载、环境变量替换、配置验证等
|
||||
package conf
|
||||
|
||||
import (
|
||||
@@ -17,6 +19,9 @@ import (
|
||||
yaml "gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
// New 加载配置文件
|
||||
// srvKey: 服务键名
|
||||
// cfg: 配置结构体指针
|
||||
func New(srvKey string, cfg any) {
|
||||
env.NewEnv()
|
||||
|
||||
@@ -26,7 +31,7 @@ func New(srvKey string, cfg any) {
|
||||
// 获取主机名
|
||||
vars.HostName, _ = os.Hostname()
|
||||
|
||||
// 构造配置文件路径,输出配置文件信息
|
||||
// 构造配置文件路径,输出配置文件信息
|
||||
cfp := fmt.Sprintf("%s_%s.yaml", strings.ToLower(srvKey), env.Runtime.Mode)
|
||||
cfp = filepath.Join(env.Runtime.Prefix, "etc", cfp)
|
||||
|
||||
@@ -48,18 +53,20 @@ func New(srvKey string, cfg any) {
|
||||
// 替换环境变量
|
||||
yamlString := os.ExpandEnv(string(yamlFile))
|
||||
|
||||
// 检查配置文件中是否存在Service和Port字段
|
||||
// 检查配置文件中是否存在Service字段
|
||||
if !strings.Contains(yamlString, "Service:") {
|
||||
log.Fatalln("ERROR: Service Not Nil", cfp)
|
||||
}
|
||||
|
||||
// 解析YAML
|
||||
// 解析YAML到配置结构体
|
||||
err = yaml.Unmarshal([]byte(yamlString), cfg)
|
||||
if err != nil {
|
||||
log.Fatalf("ERROR: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
// NotNil 验证必需配置项不为空
|
||||
// values: 需要验证的配置值列表
|
||||
func NotNil(values ...string) {
|
||||
for _, value := range values {
|
||||
if strings.TrimSpace(value) == "" {
|
||||
@@ -68,12 +75,17 @@ func NotNil(values ...string) {
|
||||
}
|
||||
}
|
||||
|
||||
// PrintInfo 打印配置信息
|
||||
// addr: 服务地址
|
||||
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)
|
||||
}
|
||||
|
||||
// CheckPort 检查端口配置,如果为空则生成随机端口
|
||||
// port: 端口字符串
|
||||
// 返回: 有效的端口字符串
|
||||
func CheckPort(port string) string {
|
||||
if port == "" {
|
||||
r := rand.New(rand.NewPCG(1000, uint64(time.Now().UnixNano())))
|
||||
@@ -83,6 +95,9 @@ func CheckPort(port string) string {
|
||||
return port
|
||||
}
|
||||
|
||||
// CheckIP 检查IP配置,如果为空则获取本机IP
|
||||
// ip: IP地址字符串
|
||||
// 返回: 有效的IP地址字符串
|
||||
func CheckIP(ip string) string {
|
||||
if ip == "" {
|
||||
return utils.GetLocationIP()
|
||||
|
||||
Reference in New Issue
Block a user