MCPcopy Create free account
hub / github.com/buildpacks/pack / NewPackCommand

Function NewPackCommand

cmd/cmd.go:29–125  ·  view source on GitHub ↗

NewPackCommand generates a Pack command nolint:staticcheck

(logger ConfigurableLogger)

Source from the content-addressed store, hash-verified

27//
28//nolint:staticcheck
29func 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))

Callers 1

mainFunction · 0.92

Calls 15

IsTerminalFunction · 0.92
GetWriterForLevelFunction · 0.92
AddHelpFlagFunction · 0.92
BuildFunction · 0.92
NewBuilderCommandFunction · 0.92
NewBuildpackCommandFunction · 0.92
NewConfigReaderFunction · 0.92
NewExtensionCommandFunction · 0.92
NewConfigCommandFunction · 0.92
InspectImageFunction · 0.92
NewStackCommandFunction · 0.92
RebaseFunction · 0.92

Tested by

no test coverage detected