diff options
author | René 'Necoro' Neumann <necoro@necoro.eu> | 2020-05-01 18:18:40 +0200 |
---|---|---|
committer | René 'Necoro' Neumann <necoro@necoro.eu> | 2020-05-01 18:18:40 +0200 |
commit | 9bd0c60e5007dc30808b7eef17a091fb248d54d6 (patch) | |
tree | 6b5837e2fe9d48b1ce18ccef1d87bc5098a91afb /pkg/config/deprecated.go | |
parent | 8afa4a29d793e84007666083158e198cf2b8557d (diff) | |
download | feed2imap-go-9bd0c60e5007dc30808b7eef17a091fb248d54d6.tar.gz feed2imap-go-9bd0c60e5007dc30808b7eef17a091fb248d54d6.tar.bz2 feed2imap-go-9bd0c60e5007dc30808b7eef17a091fb248d54d6.zip |
Print warning on deprecated options. Handle "disable-ssl-verification"
Diffstat (limited to 'pkg/config/deprecated.go')
-rw-r--r-- | pkg/config/deprecated.go | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/pkg/config/deprecated.go b/pkg/config/deprecated.go new file mode 100644 index 0000000..c002085 --- /dev/null +++ b/pkg/config/deprecated.go @@ -0,0 +1,57 @@ +package config + +import ( + "fmt" + + "github.com/Necoro/feed2imap-go/pkg/log" +) + +type deprecated struct { + msg string + handle func(interface{}, *GlobalOptions, *Options) +} + +var unsupported = deprecated{ + "It won't be supported and is ignored!", + nil, +} + +var deprecatedOpts = map[string]deprecated{ + "dumpdir": unsupported, + "debug-updated": {"Use '-d' as option instead.", nil}, + "execurl": unsupported, + "filter": unsupported, + "disable-ssl-verification": {"Interpreted as 'tls-no-verify'.", func(i interface{}, global *GlobalOptions, opts *Options) { + val, ok := i.(bool) + if ok { + if val && !opts.NoTLS { + // do not overwrite the set NoTLS flag! + opts.NoTLS = val + } + } else { + log.Errorf("disable-ssl-verification: value '%v' cannot be interpreted as a boolean. Ignoring!", i) + } + }}, +} + +func handleDeprecated(option string, value interface{}, feed string, global *GlobalOptions, opts *Options) bool { + dep, ok := deprecatedOpts[option] + if !ok { + return false + } + + var prefix string + if feed != "" { + prefix = fmt.Sprintf("Feed '%s': ", feed) + } else { + prefix = "Global " + } + + log.Warnf("%sOption '%s' is deprecated: %s", prefix, option, dep.msg) + + if dep.handle != nil { + dep.handle(value, global, opts) + } + + return true +} |