()
| 249 | } |
| 250 | |
| 251 | func (u *UserSettings) doLoadConfigs() { |
| 252 | u.loadConfigs.Do(func() { |
| 253 | // can't parse user file, that's ok. |
| 254 | var filename string |
| 255 | if u.userConfigFinder == nil { |
| 256 | filename = userConfigFinder() |
| 257 | } else { |
| 258 | filename = u.userConfigFinder() |
| 259 | } |
| 260 | var err error |
| 261 | u.userConfig, err = parseFile(filename) |
| 262 | //lint:ignore S1002 I prefer it this way |
| 263 | if err != nil && os.IsNotExist(err) == false { |
| 264 | u.onceErr = err |
| 265 | return |
| 266 | } |
| 267 | if u.systemConfigFinder == nil { |
| 268 | filename = systemConfigFinder() |
| 269 | } else { |
| 270 | filename = u.systemConfigFinder() |
| 271 | } |
| 272 | u.systemConfig, err = parseFile(filename) |
| 273 | //lint:ignore S1002 I prefer it this way |
| 274 | if err != nil && os.IsNotExist(err) == false { |
| 275 | u.onceErr = err |
| 276 | return |
| 277 | } |
| 278 | }) |
| 279 | } |
| 280 | |
| 281 | func parseFile(filename string) (*Config, error) { |
| 282 | return parseWithDepth(filename, 0) |
no test coverage detected