LoadConfig 加载配置
(configPath string)
| 12 | |
| 13 | // LoadConfig 加载配置 |
| 14 | func LoadConfig(configPath string) (*types.Config, error) { |
| 15 | // 获取默认配置 |
| 16 | config := getDefaultConfig() |
| 17 | |
| 18 | // 如果提供了配置文件路径,尝试加载 |
| 19 | if configPath != "" { |
| 20 | if err := loadConfigFromFile(config, configPath); err != nil { |
| 21 | return nil, fmt.Errorf("加载配置文件失败: %v", err) |
| 22 | } |
| 23 | } else { |
| 24 | // 尝试从默认位置加载配置文件 |
| 25 | defaultPaths := []string{ |
| 26 | "config.yaml", |
| 27 | "config.yml", |
| 28 | "./config.yaml", |
| 29 | "./config.yml", |
| 30 | } |
| 31 | |
| 32 | for _, path := range defaultPaths { |
| 33 | if _, err := os.Stat(path); err == nil { |
| 34 | if err := loadConfigFromFile(config, path); err == nil { |
| 35 | break // 成功加载,跳出循环 |
| 36 | } |
| 37 | } |
| 38 | } |
| 39 | } |
| 40 | |
| 41 | // 验证并设置默认值 |
| 42 | validateAndSetDefaults(config) |
| 43 | return config, nil |
| 44 | } |
| 45 | |
| 46 | // loadConfigFromFile 从文件加载配置 |
| 47 | func loadConfigFromFile(config *types.Config, filePath string) error { |
no test coverage detected