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{} 42