// 设置配置文件 func SetRootDir(root string) error { // 构造配置文件路径 filePath := filepath.Join(root, configFile) _, err := os.Stat(filePath) if os.IsNotExist(err) { return err } // 读取文件 buffer, err := io.ReadAllBytes(filePath) if err != nil { return err } // 解析配置项 configValue = &Config{} err = json.Unmarshal(buffer, configValue) if err != nil { return err } if configValue == nil { return fmt.Errorf("配置文件错误") } return nil }
// 设置配置文件 func ReadConfig() error { root, err := path.GetStartupDir() if err != nil { return fmt.Errorf("获取起始目录失败:%s", err.Error()) } // 构造配置文件路径 filePath := filepath.Join(root, configFile) if !io.IsExists(filePath) { return fmt.Errorf("配置文件%s不存在", filePath) } // 读取文件 buffer, err := io.ReadAllBytes(filePath) if err != nil { return err } // 解析配置项 configValue = &Config{} err = json.Unmarshal(buffer, configValue) if err != nil { return err } if configValue == nil { return fmt.Errorf("配置文件错误") } return nil }
// 初始化配置文件 func Init() error { // 启动目录 startupDir, err := path.GetStartupDir() if err != nil { return err } // 构造配置文件路径 filePath := filepath.Join(startupDir, configFile) if !io.IsExists(filePath) { return fmt.Errorf("配置文件 %s 不存在", filePath) } // 读取文件 buffer, err := io.ReadAllBytes(filePath) if err != nil { return err } // 解析配置项 configValue = &Config{} err = json.Unmarshal(buffer, configValue) if err != nil { return err } if configValue == nil { return fmt.Errorf("配置文件错误") } // 数据目录不存在就创建 _, err = os.Stat(configValue.DataDir) if os.IsNotExist(err) { err = os.Mkdir(configValue.DataDir, 0666) if err != nil { return err } } return nil }
// parseConfig 解析配置 func parseConfig() (*Config, error) { configPath, err := getConfigFilePath() if err != nil { return nil, err } log.Printf("开始解析配置,配置文件路径: %s", configPath) // 读取文件 buffer, err := io.ReadAllBytes(configPath) if err != nil { return nil, err } // 解析配置项 config := new(Config) err = yaml.Unmarshal(buffer, config) return config, err }