github.com/buildpacks/pack@v0.33.3-0.20240516162812-884dd1837311/internal/commands/yank_buildpack.go (about)

     1  package commands
     2  
     3  import (
     4  	"github.com/spf13/cobra"
     5  
     6  	"github.com/buildpacks/pack/internal/config"
     7  	"github.com/buildpacks/pack/internal/style"
     8  	"github.com/buildpacks/pack/pkg/client"
     9  	"github.com/buildpacks/pack/pkg/logging"
    10  )
    11  
    12  // Deprecated: Use yank instead
    13  func YankBuildpack(logger logging.Logger, cfg config.Config, pack PackClient) *cobra.Command {
    14  	var flags BuildpackYankFlags
    15  
    16  	cmd := &cobra.Command{
    17  		Use:     "yank-buildpack <buildpack-id-and-version>",
    18  		Hidden:  true,
    19  		Args:    cobra.ExactArgs(1),
    20  		Short:   "Yank the buildpack from the registry",
    21  		Example: "pack yank-buildpack my-buildpack@0.0.1",
    22  		RunE: logError(logger, func(cmd *cobra.Command, args []string) error {
    23  			deprecationWarning(logger, "yank-buildpack", "buildpack yank")
    24  			buildpackIDVersion := args[0]
    25  
    26  			registry, err := config.GetRegistry(cfg, flags.BuildpackRegistry)
    27  			if err != nil {
    28  				return err
    29  			}
    30  			id, version, err := parseIDVersion(buildpackIDVersion)
    31  			if err != nil {
    32  				return err
    33  			}
    34  
    35  			opts := client.YankBuildpackOptions{
    36  				ID:      id,
    37  				Version: version,
    38  				Type:    "github",
    39  				URL:     registry.URL,
    40  				Yank:    !flags.Undo,
    41  			}
    42  
    43  			if err := pack.YankBuildpack(opts); err != nil {
    44  				return err
    45  			}
    46  			logger.Infof("Successfully yanked %s", style.Symbol(buildpackIDVersion))
    47  			return nil
    48  		}),
    49  	}
    50  	cmd.Flags().StringVarP(&flags.BuildpackRegistry, "buildpack-registry", "r", "", "Buildpack Registry name")
    51  	cmd.Flags().BoolVarP(&flags.Undo, "undo", "u", false, "undo previously yanked buildpack")
    52  	AddHelpFlag(cmd, "yank-buildpack")
    53  
    54  	return cmd
    55  }