loadConfigFromFile 从文件加载配置
(config *types.Config, filePath string)
| 45 | |
| 46 | // loadConfigFromFile 从文件加载配置 |
| 47 | func loadConfigFromFile(config *types.Config, filePath string) error { |
| 48 | // 检查文件是否存在 |
| 49 | if _, err := os.Stat(filePath); os.IsNotExist(err) { |
| 50 | return fmt.Errorf("配置文件不存在: %s", filePath) |
| 51 | } |
| 52 | |
| 53 | // 读取文件内容 |
| 54 | data, err := os.ReadFile(filePath) |
| 55 | if err != nil { |
| 56 | return fmt.Errorf("读取配置文件失败: %v", err) |
| 57 | } |
| 58 | |
| 59 | // 解析YAML |
| 60 | var fileConfig types.Config |
| 61 | if err := yaml.Unmarshal(data, &fileConfig); err != nil { |
| 62 | return fmt.Errorf("解析配置文件失败: %v", err) |
| 63 | } |
| 64 | |
| 65 | // 合并配置(文件配置覆盖默认配置) |
| 66 | mergeConfig(config, &fileConfig) |
| 67 | |
| 68 | return nil |
| 69 | } |
| 70 | |
| 71 | // mergeConfig 合并配置 |
| 72 | func mergeConfig(defaultConfig *types.Config, fileConfig *types.Config) { |
no test coverage detected