diff --git a/conf/new.go b/conf/new.go index c3069d5..c300074 100644 --- a/conf/new.go +++ b/conf/new.go @@ -30,6 +30,12 @@ func New(srvKey string, cfg any) { 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) + } + print.Info("[BSM - %s] Config File: %s", srvKey, cfp) print.Info("[BSM - %s] Check Configure ...", vars.ServiceKey) @@ -39,8 +45,11 @@ func New(srvKey string, cfg any) { log.Fatalf("ERROR: %v", err) } + // 替换环境变量 + yamlString := os.ExpandEnv(string(yamlFile)) + // 检查配置文件中是否存在Service和Port字段 - if !strings.Contains(string(yamlFile), "Service:") { + if !strings.Contains(yamlString, "Service:") { log.Fatalln("ERROR: Service Not Nil", cfp) } diff --git a/utils/file.go b/utils/file.go index bcc47a8..dd9e448 100644 --- a/utils/file.go +++ b/utils/file.go @@ -8,6 +8,14 @@ import ( "path/filepath" ) + +const ( + B = 1 + KB = 1024 * B + MB = 1024 * KB + GB = 1024 * MB +) + // 将字符串写入文件 func StringToFile(path, content string) error { startF, err := os.Create(path) @@ -48,6 +56,27 @@ func CopyFile(src, dst string) (int64, error) { return nBytes, err } + +func FileSize(fp string) string { + fileInfo, err := os.Stat(fp) + if err != nil { + return "0 B" + } + bytes := fileInfo.Size() + + switch { + case bytes >= GB: + return fmt.Sprintf("%.2f GB", float64(bytes)/float64(GB)) + case bytes >= MB: + return fmt.Sprintf("%.2f MB", float64(bytes)/float64(MB)) + case bytes >= KB: + return fmt.Sprintf("%.2f KB", float64(bytes)/float64(KB)) + default: + return fmt.Sprintf("%d B", bytes) + } +} + + // 递归遍历文件夹 // rootDir: 文件夹根目录 // s: 存储文件名的切片