mirror of
https://github.com/minio/minio
synced 2024-11-05 17:34:01 +00:00
cli: Make sure to add --help flag for subcommands. (#3773)
--help is now back and prints properly with command help template.
This commit is contained in:
parent
7ea1de8245
commit
9eb8e375c5
7 changed files with 49 additions and 20 deletions
|
@ -104,6 +104,10 @@ func registerApp() *cli.App {
|
|||
registerCommand(updateCmd)
|
||||
|
||||
// Set up app.
|
||||
cli.HelpFlag = cli.BoolFlag{
|
||||
Name: "help, h",
|
||||
Usage: "Show help.",
|
||||
}
|
||||
app := cli.NewApp()
|
||||
app.Name = "Minio"
|
||||
app.Author = "Minio.io"
|
||||
|
@ -111,6 +115,8 @@ func registerApp() *cli.App {
|
|||
app.Usage = "Cloud Storage Server."
|
||||
app.Description = `Minio is an Amazon S3 compatible object storage server. Use it to store photos, videos, VMs, containers, log files, or any blob of data as objects.`
|
||||
app.Flags = globalFlags
|
||||
app.HideVersion = true // Hide `--version` flag, we already have `minio version`.
|
||||
app.HideHelpCommand = true // Hide `help, h` command, we already have `minio --help`.
|
||||
app.Commands = commands
|
||||
app.CustomAppHelpTemplate = minioHelpTemplate
|
||||
app.CommandNotFound = func(ctx *cli.Context, command string) {
|
||||
|
|
|
@ -79,7 +79,6 @@ EXAMPLES:
|
|||
$ export MINIO_SECRET_KEY=miniostorage
|
||||
$ {{.HelpName}} http://192.168.1.11/mnt/export/ http://192.168.1.12/mnt/export/ \
|
||||
http://192.168.1.13/mnt/export/ http://192.168.1.14/mnt/export/
|
||||
|
||||
`,
|
||||
}
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ var updateCmd = cli.Command{
|
|||
{{.HelpName}} - {{.Usage}}
|
||||
|
||||
USAGE:
|
||||
{{.HelpName}} {{if .VisibleFlags}}[FLAGS]{{end}}
|
||||
{{.HelpName}}{{if .VisibleFlags}} [FLAGS]{{end}}
|
||||
{{if .VisibleFlags}}
|
||||
FLAGS:
|
||||
{{range .VisibleFlags}}{{.}}
|
||||
|
@ -56,8 +56,10 @@ EXIT STATUS:
|
|||
1 - New update is available.
|
||||
-1 - Error in getting update information.
|
||||
|
||||
VERSION:
|
||||
` + Version + `{{"\n"}}`,
|
||||
EXAMPLES:
|
||||
1. Check if there is a new update available:
|
||||
$ {{.HelpName}}
|
||||
`,
|
||||
}
|
||||
|
||||
const releaseTagTimeLayout = "2006-01-02T15-04-05Z"
|
||||
|
|
|
@ -29,10 +29,15 @@ var versionCmd = cli.Command{
|
|||
{{.HelpName}} - {{.Usage}}
|
||||
|
||||
USAGE:
|
||||
{{.HelpName}}
|
||||
|
||||
VERSION:
|
||||
` + Version + `{{"\n"}}`,
|
||||
{{.HelpName}}{{if .VisibleFlags}} [FLAGS]{{end}}
|
||||
{{if .VisibleFlags}}
|
||||
FLAGS:
|
||||
{{range .VisibleFlags}}{{.}}
|
||||
{{end}}{{end}}
|
||||
EXAMPLES:
|
||||
1. Prints server version:
|
||||
$ {{.HelpName}}
|
||||
`,
|
||||
}
|
||||
|
||||
func mainVersion(ctx *cli.Context) {
|
||||
|
|
20
vendor/github.com/minio/cli/app.go
generated
vendored
20
vendor/github.com/minio/cli/app.go
generated
vendored
|
@ -45,8 +45,10 @@ type App struct {
|
|||
Flags []Flag
|
||||
// Boolean to enable bash completion commands
|
||||
EnableBashCompletion bool
|
||||
// Boolean to hide built-in help command
|
||||
// Boolean to hide built-in help flag
|
||||
HideHelp bool
|
||||
// Boolean to hide built-in help command
|
||||
HideHelpCommand bool
|
||||
// Boolean to hide built-in version flag and the VERSION section of help
|
||||
HideVersion bool
|
||||
// Populate on app startup, only gettable through method Categories()
|
||||
|
@ -144,9 +146,11 @@ func (a *App) Setup() {
|
|||
}
|
||||
a.Commands = newCmds
|
||||
|
||||
if a.Command(helpCommand.Name) == nil && !a.HideHelp {
|
||||
a.Commands = append(a.Commands, helpCommand)
|
||||
if (HelpFlag != BoolFlag{}) {
|
||||
if a.Command(helpCommand.Name) == nil {
|
||||
if !a.HideHelpCommand {
|
||||
a.Commands = append(a.Commands, helpCommand)
|
||||
}
|
||||
if !a.HideHelp && (HelpFlag != BoolFlag{}) {
|
||||
a.appendFlag(HelpFlag)
|
||||
}
|
||||
}
|
||||
|
@ -285,9 +289,11 @@ func (a *App) RunAndExitOnError() {
|
|||
func (a *App) RunAsSubcommand(ctx *Context) (err error) {
|
||||
// append help to commands
|
||||
if len(a.Commands) > 0 {
|
||||
if a.Command(helpCommand.Name) == nil && !a.HideHelp {
|
||||
a.Commands = append(a.Commands, helpCommand)
|
||||
if (HelpFlag != BoolFlag{}) {
|
||||
if a.Command(helpCommand.Name) == nil {
|
||||
if !a.HideHelpCommand {
|
||||
a.Commands = append(a.Commands, helpCommand)
|
||||
}
|
||||
if !a.HideHelp && (HelpFlag != BoolFlag{}) {
|
||||
a.appendFlag(HelpFlag)
|
||||
}
|
||||
}
|
||||
|
|
15
vendor/github.com/minio/cli/command.go
generated
vendored
15
vendor/github.com/minio/cli/command.go
generated
vendored
|
@ -51,8 +51,10 @@ type Command struct {
|
|||
// removed n version 2 since it only works under specific conditions so we
|
||||
// backport here by exposing it as an option for compatibility.
|
||||
SkipArgReorder bool
|
||||
// Boolean to hide built-in help command
|
||||
// Boolean to hide built-in help flag
|
||||
HideHelp bool
|
||||
// Boolean to hide built-in help command
|
||||
HideHelpCommand bool
|
||||
// Boolean to hide this command from help or completion
|
||||
Hidden bool
|
||||
|
||||
|
@ -261,6 +263,7 @@ func (c Command) startApp(ctx *Context) error {
|
|||
app.Commands = c.Subcommands
|
||||
app.Flags = c.Flags
|
||||
app.HideHelp = c.HideHelp
|
||||
app.HideHelpCommand = c.HideHelpCommand
|
||||
|
||||
app.Version = ctx.App.Version
|
||||
app.HideVersion = ctx.App.HideVersion
|
||||
|
@ -301,5 +304,13 @@ func (c Command) startApp(ctx *Context) error {
|
|||
|
||||
// VisibleFlags returns a slice of the Flags with Hidden=false
|
||||
func (c Command) VisibleFlags() []Flag {
|
||||
return visibleFlags(c.Flags)
|
||||
flags := c.Flags
|
||||
if !c.HideHelp && (HelpFlag != BoolFlag{}) {
|
||||
// append help to flags
|
||||
flags = append(
|
||||
flags,
|
||||
HelpFlag,
|
||||
)
|
||||
}
|
||||
return visibleFlags(flags)
|
||||
}
|
||||
|
|
6
vendor/vendor.json
vendored
6
vendor/vendor.json
vendored
|
@ -163,10 +163,10 @@
|
|||
"revisionTime": "2016-07-23T06:10:19Z"
|
||||
},
|
||||
{
|
||||
"checksumSHA1": "iDDGi0/U33hxoaQBgM3ww882lmU=",
|
||||
"checksumSHA1": "7PcmjItrQSx/1sZ6Q395LCzT+iw=",
|
||||
"path": "github.com/minio/cli",
|
||||
"revision": "cea7bbb0e52ac4d24c1de3f450545f38246075a2",
|
||||
"revisionTime": "2017-02-15T09:44:04Z"
|
||||
"revision": "06bb2061ef1493532baf0444818eb5fb4c83caac",
|
||||
"revisionTime": "2017-02-20T03:57:28Z"
|
||||
},
|
||||
{
|
||||
"checksumSHA1": "NBGyq2+iTtJvJ+ElG4FzHLe1WSY=",
|
||||
|
|
Loading…
Reference in a new issue