Skip to content

Commit 771d37e

Browse files
authored
Merge pull request #120 from criteo/fix-args-auto-complete
Fix auto-complete arguments issue
2 parents f7978c8 + b10852c commit 771d37e

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

internal/frontend/default-frontend.go

+17-2
Original file line numberDiff line numberDiff line change
@@ -151,9 +151,24 @@ func (self *defaultFrontend) addExecutableCommands() {
151151
// new ways to handle flags
152152
self.processFlags(checkFlags, group, name, cmd, flags, exclusiveFlags, groupFlags)
153153

154-
cmd.ValidArgsFunction = func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
154+
cmd.ValidArgsFunction = func(c *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
155155
if len(validArgsCmd) > 0 {
156-
output, err := self.executeValidArgsOfCommand(group, name, args)
156+
var originalArgs = args
157+
if checkFlags {
158+
c.LocalFlags().VisitAll(func(flag *pflag.Flag) {
159+
switch flag.Value.Type() {
160+
case "bool":
161+
if flag.Value.String() == "true" {
162+
originalArgs = append(originalArgs, fmt.Sprintf("--%s", flag.Name))
163+
}
164+
default:
165+
if flag.Value.String() != "" {
166+
originalArgs = append(originalArgs, fmt.Sprintf("--%s", flag.Name), flag.Value.String())
167+
}
168+
}
169+
})
170+
}
171+
output, err := self.executeValidArgsOfCommand(group, name, originalArgs)
157172
if err != nil {
158173
return []string{}, cobra.ShellCompDirectiveNoFileComp
159174
}

0 commit comments

Comments
 (0)