mirror of https://github.com/spf13/cobra.git
Add '--version' flag to Help output (#1707)
This commit is contained in:
parent
fce8d8aeb0
commit
7039e1fa21
|
@ -1124,6 +1124,7 @@ Simply type ` + c.Name() + ` help [path to command] for full details.`,
|
||||||
CheckErr(c.Root().Usage())
|
CheckErr(c.Root().Usage())
|
||||||
} else {
|
} 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())
|
CheckErr(cmd.Help())
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -2343,3 +2343,90 @@ func TestSetContextPersistentPreRun(t *testing.T) {
|
||||||
t.Error(err)
|
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 New Issue