Don't display deprecated flags in bash completions

This commit is contained in:
Euan Kemp
2016-08-02 15:01:33 -07:00
parent 75daccd5b8
commit 40e19b3f3b
2 changed files with 27 additions and 3 deletions

View File

@ -421,7 +421,7 @@ func writeFlags(cmd *Command, w io.Writer) error {
localNonPersistentFlags := cmd.LocalNonPersistentFlags()
var visitErr error
cmd.NonInheritedFlags().VisitAll(func(flag *pflag.Flag) {
if flag.Hidden {
if nonCompletableFlag(flag) {
return
}
if err := writeFlag(flag, w); err != nil {
@ -445,7 +445,7 @@ func writeFlags(cmd *Command, w io.Writer) error {
return visitErr
}
cmd.InheritedFlags().VisitAll(func(flag *pflag.Flag) {
if flag.Hidden {
if nonCompletableFlag(flag) {
return
}
if err := writeFlag(flag, w); err != nil {
@ -474,7 +474,7 @@ func writeRequiredFlag(cmd *Command, w io.Writer) error {
flags := cmd.NonInheritedFlags()
var visitErr error
flags.VisitAll(func(flag *pflag.Flag) {
if flag.Hidden {
if nonCompletableFlag(flag) {
return
}
for key := range flag.Annotations {
@ -583,6 +583,10 @@ func (cmd *Command) GenBashCompletion(w io.Writer) error {
return postscript(w, cmd.Name())
}
func nonCompletableFlag(flag *pflag.Flag) bool {
return flag.Hidden || len(flag.Deprecated) > 0
}
func (cmd *Command) GenBashCompletionFile(filename string) error {
outFile, err := os.Create(filename)
if err != nil {