diff --git a/cmd/globals.go b/cmd/globals.go index 637574434..37b1830f6 100644 --- a/cmd/globals.go +++ b/cmd/globals.go @@ -53,12 +53,11 @@ const ( ) var ( - globalQuiet = false // quiet flag set via command line. - globalConfigDir = mustGetConfigPath() // config-dir flag set via command line - // Add new global flags here. - + globalQuiet = false // Quiet flag set via command line. globalIsDistXL = false // "Is Distributed?" flag. + // Add new global flags here. + // Maximum cache size. globalMaxCacheSize = uint64(maxCacheSize) // Cache expiry. diff --git a/cmd/main.go b/cmd/main.go index 509363c61..d76e084f3 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -148,84 +148,70 @@ func checkMainSyntax(c *cli.Context) { } } -// Parse command arguments and set global variables accordingly -func setGlobalsFromContext(c *cli.Context) { - // Set config dir - switch { - case c.IsSet("config-dir"): - globalConfigDir = c.String("config-dir") - case c.GlobalIsSet("config-dir"): - globalConfigDir = c.GlobalString("config-dir") - } - if globalConfigDir == "" { - fatalIf(errors.New("Config directory is empty"), "Unable to get config file.") - } - // Set global quiet flag. - globalQuiet = c.Bool("quiet") || c.GlobalBool("quiet") -} - -// Check for updates and print a notification message -func checkUpdate() { - // Do not print update messages, if quiet flag is set. - if !globalQuiet { - updateMsg, _, err := getReleaseUpdate(minioUpdateStableURL, 1*time.Second) - if err != nil { - // Ignore any errors during getReleaseUpdate(), possibly - // because of network errors. - return - } - if updateMsg.Update { - console.Println(updateMsg) - } - } -} - -// Generic Minio initialization to create/load config, prepare loggers, etc.. -func minioInit() { - // Sets new config directory. - setGlobalConfigPath(globalConfigDir) - - // Migrate any old version of config / state files to newer format. - migrate() - - // Initialize config. - configCreated, err := initConfig() - fatalIf(err, "Unable to initialize minio config.") - if configCreated { - console.Println("Created minio configuration file at " + mustGetConfigPath()) - } - - // Fetch access keys from environment variables and update the config. - accessKey := os.Getenv("MINIO_ACCESS_KEY") - secretKey := os.Getenv("MINIO_SECRET_KEY") - if accessKey != "" && secretKey != "" { - // Set new credentials. - serverConfig.SetCredential(credential{ - AccessKeyID: accessKey, - SecretAccessKey: secretKey, - }) - } - if !isValidAccessKey(serverConfig.GetCredential().AccessKeyID) { - fatalIf(errInvalidArgument, "Invalid access key. Accept only a string starting with a alphabetic and containing from 5 to 20 characters.") - } - if !isValidSecretKey(serverConfig.GetCredential().SecretAccessKey) { - fatalIf(errInvalidArgument, "Invalid secret key. Accept only a string containing from 8 to 40 characters.") - } - - // Enable all loggers by now. - enableLoggers() - - // Init the error tracing module. - initError() -} - // Main main for minio server. func Main() { app := registerApp() app.Before = func(c *cli.Context) error { + configDir := c.GlobalString("config-dir") + if configDir == "" { + fatalIf(errors.New("Config directory is empty"), "Unable to get config file.") + } + // Sets new config directory. + setGlobalConfigPath(configDir) + // Valid input arguments to main. checkMainSyntax(c) + // Migrate any old version of config / state files to newer format. + migrate() + + // Initialize config. + configCreated, err := initConfig() + fatalIf(err, "Unable to initialize minio config.") + if configCreated { + console.Println("Created minio configuration file at " + mustGetConfigPath()) + } + + // Fetch access keys from environment variables and update the config. + accessKey := os.Getenv("MINIO_ACCESS_KEY") + secretKey := os.Getenv("MINIO_SECRET_KEY") + if accessKey != "" && secretKey != "" { + // Set new credentials. + serverConfig.SetCredential(credential{ + AccessKeyID: accessKey, + SecretAccessKey: secretKey, + }) + } + if !isValidAccessKey(serverConfig.GetCredential().AccessKeyID) { + fatalIf(errInvalidArgument, "Invalid access key. Accept only a string starting with a alphabetic and containing from 5 to 20 characters.") + } + if !isValidSecretKey(serverConfig.GetCredential().SecretAccessKey) { + fatalIf(errInvalidArgument, "Invalid secret key. Accept only a string containing from 8 to 40 characters.") + } + + // Enable all loggers by now. + enableLoggers() + + // Init the error tracing module. + initError() + + // Set global quiet flag. + globalQuiet = c.Bool("quiet") || c.GlobalBool("quiet") + + // Do not print update messages, if quiet flag is set. + if !globalQuiet { + if c.Args().Get(0) != "update" { + updateMsg, _, err := getReleaseUpdate(minioUpdateStableURL, 1*time.Second) + if err != nil { + // Ignore any errors during getReleaseUpdate(), possibly + // because of network errors. + return nil + } + if updateMsg.Update { + console.Println(updateMsg) + } + } + } return nil } diff --git a/cmd/server-main.go b/cmd/server-main.go index 1310f6729..58e671ffc 100644 --- a/cmd/server-main.go +++ b/cmd/server-main.go @@ -363,13 +363,8 @@ func serverMain(c *cli.Context) { cli.ShowCommandHelpAndExit(c, "server", 1) } - // Set global variables after parsing passed arguments - setGlobalsFromContext(c) - - checkUpdate() - - // Generic initialization - minioInit() + // Set global quiet flag. + globalQuiet = c.Bool("quiet") || c.GlobalBool("quiet") // Server address. serverAddr := c.String("address") diff --git a/cmd/update-main.go b/cmd/update-main.go index d203c1d90..b96aa825c 100644 --- a/cmd/update-main.go +++ b/cmd/update-main.go @@ -265,9 +265,8 @@ func getReleaseUpdate(updateURL string, duration time.Duration) (updateMsg updat // main entry point for update command. func mainUpdate(ctx *cli.Context) { - - setGlobalsFromContext(ctx) - if globalQuiet { + // Set global quiet flag. + if ctx.Bool("quiet") || ctx.GlobalBool("quiet") { return } diff --git a/cmd/version-main.go b/cmd/version-main.go index 640decea9..a4d1f973e 100644 --- a/cmd/version-main.go +++ b/cmd/version-main.go @@ -43,10 +43,10 @@ func mainVersion(ctx *cli.Context) { if len(ctx.Args()) != 0 { cli.ShowCommandHelpAndExit(ctx, "version", 1) } - - setGlobalsFromContext(ctx) - - checkUpdate() + // Set global quiet flag. + if ctx.Bool("quiet") || ctx.GlobalBool("quiet") { + return + } console.Println("Version: " + Version) console.Println("Release-Tag: " + ReleaseTag)