mirror of
https://github.com/spf13/cobra
synced 2024-12-27 14:57:06 +00:00
Add '--version' flag to Help output (#1707)
This commit is contained in:
parent
fce8d8aeb0
commit
7039e1fa21
2 changed files with 89 additions and 1 deletions
|
@ -1123,7 +1123,8 @@ Simply type ` + c.Name() + ` help [path to command] for full details.`,
|
|||
c.Printf("Unknown help topic %#q\n", args)
|
||||
CheckErr(c.Root().Usage())
|
||||
} else {
|
||||
cmd.InitDefaultHelpFlag() // make possible 'help' flag to be shown
|
||||
cmd.InitDefaultHelpFlag() // make possible 'help' flag to be shown
|
||||
cmd.InitDefaultVersionFlag() // make possible 'version' flag to be shown
|
||||
CheckErr(cmd.Help())
|
||||
}
|
||||
},
|
||||
|
|
|
@ -2343,3 +2343,90 @@ func TestSetContextPersistentPreRun(t *testing.T) {
|
|||
t.Error(err)
|
||||
}
|
||||
}
|
||||
|
||||
const VersionFlag = "--version"
|
||||
const HelpFlag = "--help"
|
||||
|
||||
func TestNoRootRunCommandExecutedWithVersionSet(t *testing.T) {
|
||||
rootCmd := &Command{Use: "root", Version: "1.0.0", Long: "Long description"}
|
||||
rootCmd.AddCommand(&Command{Use: "child", Run: emptyRun})
|
||||
|
||||
output, err := executeCommand(rootCmd)
|
||||
if err != nil {
|
||||
t.Errorf("Unexpected error: %v", err)
|
||||
}
|
||||
|
||||
checkStringContains(t, output, rootCmd.Long)
|
||||
checkStringContains(t, output, HelpFlag)
|
||||
checkStringContains(t, output, VersionFlag)
|
||||
}
|
||||
|
||||
func TestNoRootRunCommandExecutedWithoutVersionSet(t *testing.T) {
|
||||
rootCmd := &Command{Use: "root", Long: "Long description"}
|
||||
rootCmd.AddCommand(&Command{Use: "child", Run: emptyRun})
|
||||
|
||||
output, err := executeCommand(rootCmd)
|
||||
if err != nil {
|
||||
t.Errorf("Unexpected error: %v", err)
|
||||
}
|
||||
|
||||
checkStringContains(t, output, rootCmd.Long)
|
||||
checkStringContains(t, output, HelpFlag)
|
||||
checkStringOmits(t, output, VersionFlag)
|
||||
}
|
||||
|
||||
func TestHelpCommandExecutedWithVersionSet(t *testing.T) {
|
||||
rootCmd := &Command{Use: "root", Version: "1.0.0", Long: "Long description", Run: emptyRun}
|
||||
rootCmd.AddCommand(&Command{Use: "child", Run: emptyRun})
|
||||
|
||||
output, err := executeCommand(rootCmd, "help")
|
||||
if err != nil {
|
||||
t.Errorf("Unexpected error: %v", err)
|
||||
}
|
||||
|
||||
checkStringContains(t, output, rootCmd.Long)
|
||||
checkStringContains(t, output, HelpFlag)
|
||||
checkStringContains(t, output, VersionFlag)
|
||||
}
|
||||
|
||||
func TestHelpCommandExecutedWithoutVersionSet(t *testing.T) {
|
||||
rootCmd := &Command{Use: "root", Long: "Long description", Run: emptyRun}
|
||||
rootCmd.AddCommand(&Command{Use: "child", Run: emptyRun})
|
||||
|
||||
output, err := executeCommand(rootCmd, "help")
|
||||
if err != nil {
|
||||
t.Errorf("Unexpected error: %v", err)
|
||||
}
|
||||
|
||||
checkStringContains(t, output, rootCmd.Long)
|
||||
checkStringContains(t, output, HelpFlag)
|
||||
checkStringOmits(t, output, VersionFlag)
|
||||
}
|
||||
|
||||
func TestHelpflagCommandExecutedWithVersionSet(t *testing.T) {
|
||||
rootCmd := &Command{Use: "root", Version: "1.0.0", Long: "Long description", Run: emptyRun}
|
||||
rootCmd.AddCommand(&Command{Use: "child", Run: emptyRun})
|
||||
|
||||
output, err := executeCommand(rootCmd, HelpFlag)
|
||||
if err != nil {
|
||||
t.Errorf("Unexpected error: %v", err)
|
||||
}
|
||||
|
||||
checkStringContains(t, output, rootCmd.Long)
|
||||
checkStringContains(t, output, HelpFlag)
|
||||
checkStringContains(t, output, VersionFlag)
|
||||
}
|
||||
|
||||
func TestHelpflagCommandExecutedWithoutVersionSet(t *testing.T) {
|
||||
rootCmd := &Command{Use: "root", Long: "Long description", Run: emptyRun}
|
||||
rootCmd.AddCommand(&Command{Use: "child", Run: emptyRun})
|
||||
|
||||
output, err := executeCommand(rootCmd, HelpFlag)
|
||||
if err != nil {
|
||||
t.Errorf("Unexpected error: %v", err)
|
||||
}
|
||||
|
||||
checkStringContains(t, output, rootCmd.Long)
|
||||
checkStringContains(t, output, HelpFlag)
|
||||
checkStringOmits(t, output, VersionFlag)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue