From e7e467fb3a3433800f7b313d585ba33c551e2b19 Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Mon, 24 Sep 2018 21:27:30 +0100 Subject: [PATCH] cmd: factor FlagName into fs.Option #2541 --- cmd/cmd.go | 5 +---- fs/fs.go | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/cmd/cmd.go b/cmd/cmd.go index 43f69f6d3..8bbd1cf95 100644 --- a/cmd/cmd.go +++ b/cmd/cmd.go @@ -447,10 +447,7 @@ func AddBackendFlags() { } done[opt.Name] = struct{}{} // Make a flag from each option - name := strings.Replace(opt.Name, "_", "-", -1) // convert snake_case to kebab-case - if !opt.NoPrefix { - name = fsInfo.Prefix + "-" + name - } + name := opt.FlagName(fsInfo.Prefix) found := pflag.CommandLine.Lookup(name) != nil if !found { // Take first line of help only diff --git a/fs/fs.go b/fs/fs.go index 66e2c02b0..390d9364a 100644 --- a/fs/fs.go +++ b/fs/fs.go @@ -154,6 +154,20 @@ func (o *Option) Type() string { return reflect.TypeOf(o.value()).Name() } +// FlagName for the option +func (o *Option) FlagName(prefix string) string { + name := strings.Replace(o.Name, "_", "-", -1) // convert snake_case to kebab-case + if !o.NoPrefix { + name = prefix + "-" + name + } + return name +} + +// EnvVarName for the option +func (o *Option) EnvVarName(prefix string) string { + return OptionToEnv(prefix + "-" + o.Name) +} + // OptionExamples is a slice of examples type OptionExamples []OptionExample