(path string)
| 269 | } |
| 270 | |
| 271 | func loadConfigFile(path string) Config { |
| 272 | var cfg Config |
| 273 | if path == "" { |
| 274 | for _, name := range []string{"buggregator.yaml", "buggregator.yml"} { |
| 275 | if _, err := os.Stat(name); err == nil { |
| 276 | path = name |
| 277 | break |
| 278 | } |
| 279 | } |
| 280 | } |
| 281 | if path == "" { |
| 282 | return cfg |
| 283 | } |
| 284 | |
| 285 | data, err := os.ReadFile(path) |
| 286 | if err != nil { |
| 287 | slog.Warn("failed to read config file", "path", path, "err", err) |
| 288 | return cfg |
| 289 | } |
| 290 | |
| 291 | expanded := expandEnvVars(string(data)) |
| 292 | if err := yaml.Unmarshal([]byte(expanded), &cfg); err != nil { |
| 293 | slog.Warn("failed to parse config file", "path", path, "err", err) |
| 294 | return cfg |
| 295 | } |
| 296 | |
| 297 | slog.Info("loaded config file", "path", path) |
| 298 | return cfg |
| 299 | } |
| 300 | |
| 301 | var envVarPattern = regexp.MustCompile(`\$\{([^}:]+)(?::([^}]*))?\}`) |
| 302 |
no test coverage detected