mirror of
https://github.com/spf13/cobra
synced 2024-11-24 14:47:12 +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
|
@ -1124,6 +1124,7 @@ Simply type ` + c.Name() + ` help [path to command] for full details.`,
|
|||
CheckErr(c.Root().Usage())
|
||||
} else {
|
||||
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