重新整理思路3

This commit is contained in:
2026-05-21 21:00:09 +08:00
parent 5ceca47d39
commit a83f77b48f
4 changed files with 44 additions and 5 deletions

View File

@@ -0,0 +1,65 @@
package resource
import (
"fmt"
"os"
"path"
"strings"
"Crimson-Gatekeeper/internal/utils"
"gopkg.in/yaml.v3"
)
type Cfg struct {
server struct {
port string
database *struct {
host string
user string
dbname string
sslmode string
port string
passwd string
connectTimeout int
sshPoint string
}
sshPoint map[string]*struct {
host string
port int
user string
passwd string
keyPath string
}
}
}
func getCfg() *Cfg {
pwd, err := os.Getwd()
utils.PaincEro(err, "获取当前工作目录失败")
dirs, err := os.ReadDir(pwd)
utils.PaincEro(err, "获取目录文件失败")
var data []byte
for _, item := range dirs {
isyaml := strings.HasSuffix(item.Name(), ".yaml")
if isyaml {
filePath := path.Join(pwd, item.Name())
data, err = os.ReadFile(filePath)
utils.PaincEro(err, "读取配置文件失败")
break
}
}
if data == nil {
fmt.Println("没有找到配置文件,启动失败")
panic("没有找到配置文件,进程终止")
}
cfg := &Cfg{}
err = yaml.Unmarshal(data, cfg)
utils.PaincEro(err, "解析配置文件失败")
for _, item := range cfg.server.sshPoint {
if item.port == 0 {
item.port = 22
}
}
return cfg
}