aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pkg/config/yaml.go10
1 files changed, 7 insertions, 3 deletions
diff --git a/pkg/config/yaml.go b/pkg/config/yaml.go
index ad1acf7..a80c80d 100644
--- a/pkg/config/yaml.go
+++ b/pkg/config/yaml.go
@@ -150,7 +150,7 @@ func buildOptions(globalFeedOptions *Options, options Map) (feedOptions Options,
n := gv.NumField()
for i := 0; i < n; i++ {
- val := fv.Field(i)
+ field := fv.Field(i)
f := fv.Type().Field(i)
if f.PkgPath != "" && !f.Anonymous {
@@ -166,10 +166,14 @@ func buildOptions(globalFeedOptions *Options, options Map) (feedOptions Options,
set, ok := options[name]
if ok { // in the map -> copy and delete
- val.Set(reflect.ValueOf(set))
+ value := reflect.ValueOf(set)
+ if !value.Type().AssignableTo(field.Type()) {
+ value = value.Convert(field.Type())
+ }
+ field.Set(value)
delete(options, name)
} else { // not in the map -> copy from global
- val.Set(gv.Field(i))
+ field.Set(gv.Field(i))
}
}