forked from mirror/cobra
Provide option to hide default 'completion' cmd (#1541)
Fixes #1507 Signed-off-by: Marc Khouzam <marc.khouzam@montreal.ca>
This commit is contained in:
parent
ee75a2b1ed
commit
6f84ef4875
|
@ -93,6 +93,8 @@ type CompletionOptions struct {
|
|||
// DisableDescriptions turns off all completion descriptions for shells
|
||||
// that support them
|
||||
DisableDescriptions bool
|
||||
// HiddenDefaultCmd makes the default 'completion' command hidden
|
||||
HiddenDefaultCmd bool
|
||||
}
|
||||
|
||||
// NoFileCompletions can be used to disable file completion for commands that should
|
||||
|
@ -605,6 +607,7 @@ See each sub-command's help for details on how to use the generated script.
|
|||
`, c.Root().Name()),
|
||||
Args: NoArgs,
|
||||
ValidArgsFunction: NoFileCompletions,
|
||||
Hidden: c.CompletionOptions.HiddenDefaultCmd,
|
||||
}
|
||||
c.AddCommand(completionCmd)
|
||||
|
||||
|
|
|
@ -2398,6 +2398,21 @@ func TestDefaultCompletionCmd(t *testing.T) {
|
|||
rootCmd.CompletionOptions.DisableDescriptions = false
|
||||
// Remove completion command for the next test
|
||||
removeCompCmd(rootCmd)
|
||||
|
||||
// Test that the 'completion' command can be hidden
|
||||
rootCmd.CompletionOptions.HiddenDefaultCmd = true
|
||||
assertNoErr(t, rootCmd.Execute())
|
||||
compCmd, _, err = rootCmd.Find([]string{compCmdName})
|
||||
if err != nil {
|
||||
t.Errorf("Unexpected error: %v", err)
|
||||
}
|
||||
if compCmd.Hidden == false {
|
||||
t.Error("Default 'completion' command should be hidden but it is not")
|
||||
}
|
||||
// Re-enable for next test
|
||||
rootCmd.CompletionOptions.HiddenDefaultCmd = false
|
||||
// Remove completion command for the next test
|
||||
removeCompCmd(rootCmd)
|
||||
}
|
||||
|
||||
func TestCompleteCompletion(t *testing.T) {
|
||||
|
|
Loading…
Reference in New Issue