package parse 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 ssh bool } ssh struct { host string port string user string passwd string keyPath string } } } func (c *Cfg) getDbParam() { } 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, "解析配置文件失败") return cfg }