NewPackCommand generates a Pack command nolint:staticcheck
(logger ConfigurableLogger)
| 27 | // |
| 28 | //nolint:staticcheck |
| 29 | func NewPackCommand(logger ConfigurableLogger) (*cobra.Command, error) { |
| 30 | cobra.EnableCommandSorting = false |
| 31 | cfg, cfgPath, err := initConfig() |
| 32 | if err != nil { |
| 33 | return nil, err |
| 34 | } |
| 35 | |
| 36 | packClient, err := initClient(logger, cfg) |
| 37 | if err != nil { |
| 38 | return nil, err |
| 39 | } |
| 40 | |
| 41 | rootCmd := &cobra.Command{ |
| 42 | Use: "pack", |
| 43 | Short: "CLI for building apps using Cloud Native Buildpacks", |
| 44 | PersistentPreRun: func(cmd *cobra.Command, args []string) { |
| 45 | if fs := cmd.Flags(); fs != nil { |
| 46 | if forceColor, err := fs.GetBool("force-color"); err == nil && !forceColor { |
| 47 | if flag, err := fs.GetBool("no-color"); err == nil && flag { |
| 48 | color.Disable(flag) |
| 49 | } |
| 50 | |
| 51 | _, canDisplayColor := term.IsTerminal(logging.GetWriterForLevel(logger, logging.InfoLevel)) |
| 52 | if !canDisplayColor { |
| 53 | color.Disable(true) |
| 54 | } |
| 55 | } |
| 56 | if flag, err := fs.GetBool("quiet"); err == nil { |
| 57 | logger.WantQuiet(flag) |
| 58 | } |
| 59 | if flag, err := fs.GetBool("verbose"); err == nil { |
| 60 | logger.WantVerbose(flag) |
| 61 | } |
| 62 | if flag, err := fs.GetBool("timestamps"); err == nil { |
| 63 | logger.WantTime(flag) |
| 64 | } |
| 65 | } |
| 66 | }, |
| 67 | } |
| 68 | |
| 69 | rootCmd.PersistentFlags().Bool("no-color", false, "Disable color output") |
| 70 | rootCmd.PersistentFlags().Bool("force-color", false, "Force color output") |
| 71 | rootCmd.PersistentFlags().Bool("timestamps", false, "Enable timestamps in output") |
| 72 | rootCmd.PersistentFlags().BoolP("quiet", "q", false, "Show less output") |
| 73 | rootCmd.PersistentFlags().BoolP("verbose", "v", false, "Show more output") |
| 74 | rootCmd.Flags().Bool("version", false, "Show current 'pack' version") |
| 75 | |
| 76 | commands.AddHelpFlag(rootCmd, "pack") |
| 77 | |
| 78 | rootCmd.AddCommand(commands.Build(logger, cfg, packClient)) |
| 79 | rootCmd.AddCommand(commands.NewBuilderCommand(logger, cfg, packClient)) |
| 80 | rootCmd.AddCommand(commands.NewBuildpackCommand(logger, cfg, packClient, buildpackage.NewConfigReader())) |
| 81 | rootCmd.AddCommand(commands.NewExtensionCommand(logger, cfg, packClient, buildpackage.NewConfigReader())) |
| 82 | rootCmd.AddCommand(commands.NewConfigCommand(logger, cfg, cfgPath, packClient)) |
| 83 | rootCmd.AddCommand(commands.InspectImage(logger, imagewriter.NewFactory(), cfg, packClient)) |
| 84 | rootCmd.AddCommand(commands.NewStackCommand(logger)) |
| 85 | rootCmd.AddCommand(commands.Rebase(logger, cfg, packClient)) |
| 86 | rootCmd.AddCommand(commands.NewSBOMCommand(logger, cfg, packClient)) |
no test coverage detected