diff --git a/cmd/executor/cmd/root.go b/cmd/executor/cmd/root.go index c5cbd57fe8..d145c9256e 100644 --- a/cmd/executor/cmd/root.go +++ b/cmd/executor/cmd/root.go @@ -39,13 +39,18 @@ import ( ) var ( - opts = &config.KanikoOptions{} - force bool + opts = &config.KanikoOptions{} + force bool + logLevel string + logFormat string ) func init() { - logging.AddFlags(RootCmd.PersistentFlags()) + RootCmd.PersistentFlags().StringVarP(&logLevel, "verbosity", "v", logging.DefaultLevel, "Log level (debug, info, warn, error, fatal, panic") + RootCmd.PersistentFlags().StringVar(&logFormat, "log-format", logging.FormatColor, "Log format (text, color, json)") + RootCmd.PersistentFlags().BoolVarP(&force, "force", "", false, "Force building outside of a container") + addKanikoOptionsFlags() addHiddenFlags(RootCmd) } @@ -56,9 +61,11 @@ var RootCmd = &cobra.Command{ PersistentPreRunE: func(cmd *cobra.Command, args []string) error { if cmd.Use == "executor" { resolveEnvironmentBuildArgs(opts.BuildArgs, os.Getenv) - if err := logging.Configure(); err != nil { + + if err := logging.Configure(logLevel, logFormat); err != nil { return err } + if !opts.NoPush && len(opts.Destinations) == 0 { return errors.New("You must provide --destination, or use --no-push") } diff --git a/cmd/warmer/cmd/root.go b/cmd/warmer/cmd/root.go index 8ced40ac0f..9bbd08e212 100644 --- a/cmd/warmer/cmd/root.go +++ b/cmd/warmer/cmd/root.go @@ -29,11 +29,15 @@ import ( ) var ( - opts = &config.WarmerOptions{} + opts = &config.WarmerOptions{} + logLevel string + logFormat string ) func init() { - logging.AddFlags(RootCmd.PersistentFlags()) + RootCmd.PersistentFlags().StringVarP(&logLevel, "verbosity", "v", logging.DefaultLevel, "Log level (debug, info, warn, error, fatal, panic") + RootCmd.PersistentFlags().StringVar(&logFormat, "log-format", logging.FormatColor, "Log format (text, color, json)") + addKanikoOptionsFlags() addHiddenFlags() } @@ -41,9 +45,10 @@ func init() { var RootCmd = &cobra.Command{ Use: "cache warmer", PersistentPreRunE: func(cmd *cobra.Command, args []string) error { - if err := logging.Configure(); err != nil { + if err := logging.Configure(logLevel, logFormat); err != nil { return err } + if len(opts.Images) == 0 { return errors.New("You must select at least one image to cache") } diff --git a/pkg/logging/logging.go b/pkg/logging/logging.go index 5ed79df986..9a475cb293 100644 --- a/pkg/logging/logging.go +++ b/pkg/logging/logging.go @@ -21,7 +21,6 @@ import ( "github.com/pkg/errors" "github.com/sirupsen/logrus" - "github.com/spf13/pflag" ) const ( @@ -36,27 +35,16 @@ const ( FormatJSON = "json" ) -var ( - logLevel string - logFormat string -) - -// AddFlags injects logging-related flags into the given FlagSet -func AddFlags(fs *pflag.FlagSet) { - fs.StringVarP(&logLevel, "verbosity", "v", DefaultLevel, "Log level (debug, info, warn, error, fatal, panic") - fs.StringVar(&logFormat, "log-format", FormatColor, "Log format (text, color, json)") -} - // Configure sets the logrus logging level and formatter -func Configure() error { - lvl, err := logrus.ParseLevel(logLevel) +func Configure(level, format string) error { + lvl, err := logrus.ParseLevel(level) if err != nil { return errors.Wrap(err, "parsing log level") } logrus.SetLevel(lvl) var formatter logrus.Formatter - switch logFormat { + switch format { case FormatText: formatter = &logrus.TextFormatter{ DisableColors: true, @@ -68,7 +56,7 @@ func Configure() error { case FormatJSON: formatter = &logrus.JSONFormatter{} default: - return fmt.Errorf("not a valid log format: %q. Please specify one of (text, color, json)", logFormat) + return fmt.Errorf("not a valid log format: %q. Please specify one of (text, color, json)", format) } logrus.SetFormatter(formatter)