[x] Are you running the latest v2 release? The list of releases is here.
[x] Did you check the manual for your release? The v2 manual is here
[x] Did you perform a search about this problem? Here's the GitHub guide about searching.
Dependency Management
My project is automatically downloading the latest version.
Describe the bug
When HideHelpCommand is set to true on a command with no subcommands, the help text output by [...] mycmd --help imples there are subcommands, when in fact there are none. By comparison, the text output by [...] help mycmd is correct, though!
To reproduce
package main
import (
"fmt"
"github.com/urfave/cli/v2"
)
func main() {
app := &cli.App{Commands: []*cli.Command{{
Name: "foo",
HideHelpCommand: true, // <--- problem is here
}}}
app.Run([]string{"CMD", "help", "foo"})
fmt.Print("\n\n========================================\n\n")
app.Run([]string{"CMD", "foo", "--help"})
}
Observed behavior
The former execution presents the usage:
play foo [command options] [arguments...]
While the latter presents the (incorrect) usage:
play foo command [command options]
Expected behavior
The two outputs should match. The help calls are equivalent, and the latter output is misleading.
My urfave/cli version is
v2.27.1
Checklist
Dependency Management
Describe the bug
When
HideHelpCommand
is set totrue
on a command with no subcommands, the help text output by[...] mycmd --help
imples there are subcommands, when in fact there are none. By comparison, the text output by[...] help mycmd
is correct, though!To reproduce
Observed behavior
The former execution presents the usage:
While the latter presents the (incorrect) usage:
Expected behavior
The two outputs should match. The help calls are equivalent, and the latter output is misleading.
Additional context
Playground of the broken code: https://go.dev/play/p/kCuTCXk3Uxg
Run
go version
and paste its output hereN/A (Go 1.22 in the Go Playground)
Run
go env
and paste its output hereN/A (Go 1.22 in the Go Playground)