26 lines
615 B
Go
26 lines
615 B
Go
package commonflags
|
|
|
|
import (
|
|
"slices"
|
|
|
|
"github.com/spf13/cobra"
|
|
"github.com/spf13/pflag"
|
|
)
|
|
|
|
func AutoCompleteFlags(cmd *cobra.Command, _ []string, _ string) ([]string, cobra.ShellCompDirective) {
|
|
var availableFlags []string
|
|
cmd.Flags().VisitAll(func(f *pflag.Flag) {
|
|
availableFlags = append(availableFlags, f.Name)
|
|
})
|
|
|
|
var usedFlags []string
|
|
cmd.Flags().Visit(func(f *pflag.Flag) {
|
|
usedFlags = append(usedFlags, f.Name)
|
|
})
|
|
|
|
unusedFlags := slices.DeleteFunc(availableFlags, func(name string) bool {
|
|
return slices.Contains(usedFlags, name)
|
|
})
|
|
|
|
return unusedFlags, cobra.ShellCompDirectiveDefault
|
|
}
|