in path.go [164:188]
func (p cfgPath) GetValue(cfg *Config, opt *options) (value, Error) {
fields := p.fields
cur := value(cfgSub{cfg})
for ; len(fields) > 1; fields = fields[1:] {
field := fields[0]
next, err := field.GetValue(opt, cur)
if err != nil {
return nil, err
}
if next == nil {
return nil, raiseMissing(cfg, field.String())
}
cur = next
}
field := fields[0]
v, err := field.GetValue(opt, cur)
if err != nil {
return nil, raiseMissing(cfg, field.String())
}
return v, nil
}