main
1package gcfg
2
3import (
4 "gopkg.in/warnings.v0"
5)
6
7// FatalOnly filters the results of a Read*Into invocation and returns only
8// fatal errors. That is, errors (warnings) indicating data for unknown
9// sections / variables is ignored. Example invocation:
10//
11// err := gcfg.FatalOnly(gcfg.ReadFileInto(&cfg, configFile))
12// if err != nil {
13// ...
14//
15func FatalOnly(err error) error {
16 return warnings.FatalOnly(err)
17}
18
19func isFatal(err error) bool {
20 _, ok := err.(extraData)
21 return !ok
22}
23
24type extraData struct {
25 section string
26 subsection *string
27 variable *string
28}
29
30func (e extraData) Error() string {
31 s := "can't store data at section \"" + e.section + "\""
32 if e.subsection != nil {
33 s += ", subsection \"" + *e.subsection + "\""
34 }
35 if e.variable != nil {
36 s += ", variable \"" + *e.variable + "\""
37 }
38 return s
39}
40
41var _ error = extraData{}