github.com/buildpacks/pack@v0.33.3-0.20240516162812-884dd1837311/internal/commands/config.go (about) 1 package commands 2 3 import ( 4 "fmt" 5 6 "github.com/spf13/cobra" 7 8 "github.com/buildpacks/pack/internal/config" 9 "github.com/buildpacks/pack/pkg/logging" 10 ) 11 12 func NewConfigCommand(logger logging.Logger, cfg config.Config, cfgPath string, client PackClient) *cobra.Command { 13 cmd := &cobra.Command{ 14 Use: "config", 15 Short: "Interact with your local pack config file", 16 RunE: nil, 17 } 18 19 cmd.AddCommand(ConfigDefaultBuilder(logger, cfg, cfgPath, client)) 20 cmd.AddCommand(ConfigExperimental(logger, cfg, cfgPath)) 21 cmd.AddCommand(ConfigPullPolicy(logger, cfg, cfgPath)) 22 cmd.AddCommand(ConfigRegistries(logger, cfg, cfgPath)) 23 cmd.AddCommand(ConfigRunImagesMirrors(logger, cfg, cfgPath)) 24 cmd.AddCommand(ConfigTrustedBuilder(logger, cfg, cfgPath)) 25 cmd.AddCommand(ConfigLifecycleImage(logger, cfg, cfgPath)) 26 cmd.AddCommand(ConfigRegistryMirrors(logger, cfg, cfgPath)) 27 28 AddHelpFlag(cmd, "config") 29 return cmd 30 } 31 32 type editCfgFunc func(args []string, logger logging.Logger, cfg config.Config, cfgPath string) error 33 34 func generateAdd(cmdName string, logger logging.Logger, cfg config.Config, cfgPath string, addFunc editCfgFunc) *cobra.Command { 35 cmd := &cobra.Command{ 36 Use: "add", 37 Args: cobra.ExactArgs(1), 38 Short: fmt.Sprintf("Add a %s", cmdName), 39 RunE: logError(logger, func(cmd *cobra.Command, args []string) error { 40 return addFunc(args, logger, cfg, cfgPath) 41 }), 42 } 43 44 return cmd 45 } 46 47 func generateRemove(cmdName string, logger logging.Logger, cfg config.Config, cfgPath string, rmFunc editCfgFunc) *cobra.Command { 48 cmd := &cobra.Command{ 49 Use: "remove", 50 Args: cobra.ExactArgs(1), 51 Short: fmt.Sprintf("Remove a %s", cmdName), 52 RunE: logError(logger, func(cmd *cobra.Command, args []string) error { 53 return rmFunc(args, logger, cfg, cfgPath) 54 }), 55 } 56 57 return cmd 58 } 59 60 type listFunc func(args []string, logger logging.Logger, cfg config.Config) 61 62 func generateListCmd(cmdName string, logger logging.Logger, cfg config.Config, listFunc listFunc) *cobra.Command { 63 cmd := &cobra.Command{ 64 Use: "list", 65 Args: cobra.MaximumNArgs(1), 66 Short: fmt.Sprintf("List %s", cmdName), 67 RunE: logError(logger, func(cmd *cobra.Command, args []string) error { 68 listFunc(args, logger, cfg) 69 return nil 70 }), 71 } 72 73 return cmd 74 }