diff options
| author | Eyal Posener <[email protected]> | 2017-05-20 22:15:37 +0300 |
|---|---|---|
| committer | Eyal Posener <[email protected]> | 2017-05-20 22:15:37 +0300 |
| commit | 5ba73666ab38b2d2524b42bf3dc83c1449b55b30 (patch) | |
| tree | e17fb4c02be97a93bbc62a1036f296369156b66d /cmd/cmd.go | |
| parent | bc002bd8a767c5f305c3f8f21ec5c786ac5e0e37 (diff) | |
cmd: fix complete flags name
Diffstat (limited to 'cmd/cmd.go')
| -rw-r--r-- | cmd/cmd.go | 27 |
1 files changed, 15 insertions, 12 deletions
@@ -13,7 +13,9 @@ import ( // CLI for command line type CLI struct { - Name string + Name string + InstallName string + UninstallName string install bool uninstall bool @@ -30,10 +32,11 @@ const ( // install it or uninstall it. func (f *CLI) Run() bool { + fs := flag.NewFlagSet(f.Name, 0) // add flags and parse them in case they were not added and parsed // by the main program - f.AddFlags(nil, "", "") - flag.Parse() + f.AddFlags(fs) + fs.Parse(os.Args[1:]) err := f.validate() if err != nil { @@ -86,24 +89,24 @@ func (f *CLI) prompt() { // If flags is nil, the default command line flags will be taken. // Pass non-empty strings as installName and uninstallName to override the default // flag names. -func (f *CLI) AddFlags(flags *flag.FlagSet, installName, uninstallName string) { +func (f *CLI) AddFlags(flags *flag.FlagSet) { if flags == nil { flags = flag.CommandLine } - if installName == "" { - installName = defaultInstallName + if f.InstallName == "" { + f.InstallName = defaultInstallName } - if uninstallName == "" { - uninstallName = defaultUninstallName + if f.UninstallName == "" { + f.UninstallName = defaultUninstallName } - if flags.Lookup(installName) == nil { - flags.BoolVar(&f.install, installName, false, + if flags.Lookup(f.InstallName) == nil { + flags.BoolVar(&f.install, f.InstallName, false, fmt.Sprintf("Install completion for %s command", f.Name)) } - if flags.Lookup(uninstallName) == nil { - flags.BoolVar(&f.uninstall, uninstallName, false, + if flags.Lookup(f.UninstallName) == nil { + flags.BoolVar(&f.uninstall, f.UninstallName, false, fmt.Sprintf("Uninstall completion for %s command", f.Name)) } if flags.Lookup("y") == nil { |
