1
0
mirror of https://github.com/minio/mc.git synced 2025-11-12 01:02:26 +03:00

global flags are replaced with command speific flags, but still retain global behavior

This commit is contained in:
Anand Babu (AB) Periasamy
2015-11-21 14:20:00 -08:00
parent 6a2b4e959d
commit 269ac7b105
22 changed files with 33 additions and 72 deletions

View File

@@ -38,7 +38,7 @@ var accessCmd = cli.Command{
Name: "access",
Usage: "Manage bucket access permissions.",
Action: mainAccess,
Flags: []cli.Flag{accessFlagHelp},
Flags: append(globalFlags, accessFlagHelp),
CustomHelpTemplate: `Name:
mc {{.Name}} - {{.Usage}}

View File

@@ -42,7 +42,7 @@ var catCmd = cli.Command{
Name: "cat",
Usage: "Display contents of a file.",
Action: mainCat,
Flags: []cli.Flag{catFlagHelp},
Flags: append(globalFlags, catFlagHelp),
CustomHelpTemplate: `NAME:
mc {{.Name}} - {{.Usage}}

View File

@@ -38,7 +38,7 @@ var configAliasCmd = cli.Command{
Name: "alias",
Usage: "List, modify and remove aliases in configuration file.",
Action: mainConfigAlias,
Flags: []cli.Flag{configAliasFlagHelp},
Flags: append(globalFlags, configAliasFlagHelp),
CustomHelpTemplate: `NAME:
mc config {{.Name}} - {{.Usage}}

View File

@@ -38,7 +38,7 @@ var (
var configHostCmd = cli.Command{
Name: "host",
Usage: "List, modify and remove hosts in configuration file.",
Flags: []cli.Flag{configHostFlagHelp},
Flags: append(globalFlags, configHostFlagHelp),
Action: mainConfigHost,
CustomHelpTemplate: `NAME:
mc config {{.Name}} - {{.Usage}}

View File

@@ -40,7 +40,7 @@ var configCmd = cli.Command{
Name: "config",
Usage: "Manage configuration file.",
Action: mainConfig,
Flags: []cli.Flag{configFlagHelp},
Flags: append(globalFlags, configFlagHelp),
Subcommands: []cli.Command{
configAliasCmd,
configHostCmd,

View File

@@ -36,7 +36,7 @@ var configVersionCmd = cli.Command{
Name: "version",
Usage: "Print config version.",
Action: mainConfigVersion,
Flags: []cli.Flag{configVersionFlagHelp},
Flags: append(globalFlags, configVersionFlagHelp),
CustomHelpTemplate: `NAME:
mc config {{.Name}} - {{.Usage}}

View File

@@ -53,7 +53,7 @@ var cpCmd = cli.Command{
Name: "cp",
Usage: "Copy one or more objects to a target.",
Action: mainCopy,
Flags: []cli.Flag{cpFlagRecursive, cpFlagHelp},
Flags: append(globalFlags, cpFlagRecursive, cpFlagHelp),
CustomHelpTemplate: `NAME:
mc {{.Name}} - {{.Usage}}

View File

@@ -42,7 +42,7 @@ var diffCmd = cli.Command{
Usage: "Compute differences between two folders.",
Description: "Diff only lists missing objects or objects with size differences. It *DOES NOT* compare contents. i.e. Objects of same name and size, but differ in contents are not noticed.",
Action: mainDiff,
Flags: []cli.Flag{diffFlagHelp},
Flags: append(globalFlags, diffFlagHelp),
CustomHelpTemplate: `NAME:
mc {{.Name}} - {{.Usage}}

View File

@@ -21,54 +21,36 @@ import "github.com/minio/cli"
// Collection of mc commands currently supported
var commands = []cli.Command{}
// Collection of mc flags currently supported
var flags = []cli.Flag{}
// Collection of mc commands currently supported in a trie tree
var commandsTree = newTrie()
var (
helpFlag = cli.BoolFlag{
Name: "help, h",
Usage: "Help for mc.",
}
configFlag = cli.StringFlag{
// Collection of mc flags currently supported
var globalFlags = []cli.Flag{
cli.StringFlag{
Name: "config-folder, C",
Value: mustGetMcConfigDir(),
Usage: "Path to configuration folder.",
}
quietFlag = cli.BoolFlag{
},
cli.BoolFlag{
Name: "quiet, q",
Usage: "Suppress chatty console output.",
}
colorsFlag = cli.BoolFlag{
},
cli.BoolFlag{
Name: "no-color",
Usage: "Disable color theme.",
}
jsonFlag = cli.BoolFlag{
},
cli.BoolFlag{
Name: "json",
Usage: "Enable json formatted output.",
}
debugFlag = cli.BoolFlag{
},
cli.BoolFlag{
Name: "debug",
Usage: "Enable debugging output.",
},
}
// Add your new flags starting here
)
// registerCmd registers a cli command
func registerCmd(cmd cli.Command) {
commands = append(commands, cmd)
commandsTree.Insert(cmd.Name)
}
// registerFlag registers a cli flag
func registerFlag(flag cli.Flag) {
flags = append(flags, flag)
}

View File

@@ -47,7 +47,7 @@ var lsCmd = cli.Command{
Name: "ls",
Usage: "List files and folders.",
Action: mainList,
Flags: []cli.Flag{lsFlagRecursive, lsFlagIncomplete, lsFlagHelp},
Flags: append(globalFlags, lsFlagRecursive, lsFlagIncomplete, lsFlagHelp),
CustomHelpTemplate: `NAME:
mc {{.Name}} - {{.Usage}}

15
main.go
View File

@@ -110,12 +110,6 @@ func getSystemData() map[string]string {
func registerBefore(ctx *cli.Context) error {
setMcConfigDir(ctx.GlobalString("config-folder"))
// Set global states from global flags.
setGlobals(ctx.GlobalBool("quiet"),
ctx.GlobalBool("debug"),
ctx.GlobalBool("json"),
ctx.GlobalBool("no-color"))
// Verify golang runtime.
verifyMCRuntime()
@@ -155,18 +149,9 @@ func registerApp() *cli.App {
registerCmd(updateCmd) // Check for new software updates.
registerCmd(versionCmd) // Print version.
// register all the flags (refer flags.go)
registerFlag(helpFlag) // Show help.
registerFlag(configFlag) // Path to configuration folder.
registerFlag(quietFlag) // Suppress chatty console output.
registerFlag(jsonFlag) // Enable json formatted output.
registerFlag(debugFlag) // Enable debugging output.
registerFlag(colorsFlag) // Choose different styles of console coloring.
app := cli.NewApp()
app.Usage = "Minio Client for cloud storage and filesystems."
app.Commands = commands
app.Flags = flags
app.Author = "Minio.io"
app.CustomAppHelpTemplate = mcHelpTemplate
app.CommandNotFound = commandNotFound // handler function declared above.

View File

@@ -38,7 +38,7 @@ var mbCmd = cli.Command{
Name: "mb",
Usage: "Make a bucket or folder.",
Action: mainMakeBucket,
Flags: []cli.Flag{mbFlagHelp},
Flags: append(globalFlags, mbFlagHelp),
CustomHelpTemplate: `NAME:
mc {{.Name}} - {{.Usage}}

View File

@@ -52,7 +52,7 @@ var mirrorCmd = cli.Command{
Name: "mirror",
Usage: "Mirror folders recursively from a single source to many destinations.",
Action: mainMirror,
Flags: []cli.Flag{mirrorFlagForce, mirrorFlagHelp},
Flags: append(globalFlags, mirrorFlagForce, mirrorFlagHelp),
CustomHelpTemplate: `NAME:
mc {{.Name}} - {{.Usage}}

View File

@@ -36,7 +36,7 @@ var pipeCmd = cli.Command{
Name: "pipe",
Usage: "Write contents of stdin to one or more targets. When no target is specified, it writes to stdout.",
Action: mainPipe,
Flags: []cli.Flag{pipeFlagHelp},
Flags: append(globalFlags, pipeFlagHelp),
CustomHelpTemplate: `NAME:
mc {{.Name}} - {{.Usage}}

View File

@@ -56,13 +56,7 @@ var rmCmd = cli.Command{
Name: "rm",
Usage: "Remove file or bucket [WARNING: Use with care].",
Action: mainRm,
Flags: []cli.Flag{
rmFlagRecursive,
rmFlagForce,
rmFlagIncomplete,
rmFlagFake,
rmFlagHelp,
},
Flags: append(globalFlags, rmFlagRecursive, rmFlagForce, rmFlagIncomplete, rmFlagFake, rmFlagHelp),
CustomHelpTemplate: `NAME:
mc {{.Name}} - {{.Usage}}

View File

@@ -41,7 +41,7 @@ var sessionCmd = cli.Command{
Name: "session",
Usage: "Manage saved sessions of cp and mirror operations.",
Action: mainSession,
Flags: []cli.Flag{sessionFlagHelp},
Flags: append(globalFlags, sessionFlagHelp),
CustomHelpTemplate: `NAME:
mc {{.Name}} - {{.Usage}}

View File

@@ -39,7 +39,7 @@ var shareDownload = cli.Command{
Name: "download",
Usage: "Generate URLs for download access.",
Action: mainShareDownload,
Flags: []cli.Flag{shareFlagRecursive, shareFlagExpire, shareFlagDownloadHelp},
Flags: append(globalFlags, shareFlagRecursive, shareFlagExpire, shareFlagDownloadHelp),
CustomHelpTemplate: `NAME:
mc share {{.Name}} - {{.Usage}}

View File

@@ -36,7 +36,7 @@ var shareList = cli.Command{
Name: "list",
Usage: "List previously shared objects and folders.",
Action: mainShareList,
Flags: []cli.Flag{shareFlagListHelp},
Flags: append(globalFlags, shareFlagListHelp),
CustomHelpTemplate: `NAME:
mc share {{.Name}} COMMAND - {{.Usage}}

View File

@@ -37,7 +37,7 @@ var shareCmd = cli.Command{
Name: "share",
Usage: "Generate URL for sharing.",
Action: mainShare,
Flags: []cli.Flag{shareFlagHelp},
Flags: append(globalFlags, shareFlagHelp),
Subcommands: []cli.Command{
shareDownload,
shareUpload,

View File

@@ -37,7 +37,7 @@ var shareUpload = cli.Command{
Name: "upload",
Usage: "Generate curl command to upload objects without requiring access/secret keys.",
Action: mainShareUpload,
Flags: []cli.Flag{shareFlagExpire, shareFlagContentType, shareFlagUploadHelp},
Flags: append(globalFlags, shareFlagExpire, shareFlagContentType, shareFlagUploadHelp),
CustomHelpTemplate: `NAME:
mc share {{.Name}} - {{.Usage}}

View File

@@ -46,7 +46,7 @@ var updateCmd = cli.Command{
Name: "update",
Usage: "Check for a new software update.",
Action: mainUpdate,
Flags: []cli.Flag{updateFlagExperimental, updateFlagHelp},
Flags: append(globalFlags, updateFlagExperimental, updateFlagHelp),
CustomHelpTemplate: `Name:
mc {{.Name}} - {{.Usage}}

View File

@@ -38,7 +38,7 @@ var versionCmd = cli.Command{
Name: "version",
Usage: "Print version.",
Action: mainVersion,
Flags: []cli.Flag{versionFlagHelp},
Flags: append(globalFlags, versionFlagHelp),
CustomHelpTemplate: `NAME:
mc {{.Name}} - {{.Usage}}