MCPcopy
hub / github.com/cloudfoundry/cli / Execute

Method Execute

command/v7/create_buildpack_command.go:35–109  ·  view source on GitHub ↗
(args []string)

Source from the content-addressed store, hash-verified

33}
34
35func (cmd CreateBuildpackCommand) Execute(args []string) error {
36 err := cmd.SharedActor.CheckTarget(false, false)
37 if err != nil {
38 return err
39 }
40
41 user, err := cmd.Actor.GetCurrentUser()
42 if err != nil {
43 return err
44 }
45
46 if cmd.Lifecycle != "" {
47 err = command.MinimumCCAPIVersionCheck(cmd.Config.APIVersion(), ccversion.MinVersionBuildpackLifecycleQuery, "--lifecycle")
48 if err != nil {
49 return err
50 }
51 }
52
53 cmd.UI.DisplayTextWithFlavor("Creating buildpack {{.BuildpackName}} as {{.Username}}...", map[string]interface{}{
54 "Username": user.Name,
55 "BuildpackName": cmd.RequiredArgs.Buildpack,
56 })
57
58 downloader := download.NewDownloader(time.Second * 30)
59 tmpDirPath, err := os.MkdirTemp("", "buildpack-dir-")
60 if err != nil {
61 return err
62 }
63 defer os.RemoveAll(tmpDirPath)
64
65 pathToBuildpackBits, err := cmd.Actor.PrepareBuildpackBits(string(cmd.RequiredArgs.Path), tmpDirPath, downloader)
66 if err != nil {
67 return err
68 }
69
70 createdBuildpack, warnings, err := cmd.Actor.CreateBuildpack(resources.Buildpack{
71 Name: cmd.RequiredArgs.Buildpack,
72 Position: types.NullInt{IsSet: true, Value: cmd.RequiredArgs.Position},
73 Enabled: types.NullBool{IsSet: true, Value: !cmd.Disable},
74 Lifecycle: cmd.Lifecycle,
75 })
76 cmd.UI.DisplayWarnings(warnings)
77 if err != nil {
78 return err
79 }
80 cmd.UI.DisplayOK()
81
82 cmd.UI.DisplayTextWithFlavor("Uploading buildpack {{.BuildpackName}} as {{.Username}}...", map[string]interface{}{
83 "Username": user.Name,
84 "BuildpackName": cmd.RequiredArgs.Buildpack,
85 })
86 jobURL, warnings, err := cmd.Actor.UploadBuildpack(createdBuildpack.GUID, pathToBuildpackBits, cmd.ProgressBar)
87 if _, ok := err.(ccerror.InvalidAuthTokenError); ok {
88 cmd.UI.DisplayWarnings([]string{"Failed to upload buildpack due to auth token expiration, retrying..."})
89 jobURL, warnings, err = cmd.Actor.UploadBuildpack(createdBuildpack.GUID, pathToBuildpackBits, cmd.ProgressBar)
90 }
91 cmd.UI.DisplayWarnings(warnings)
92 if err != nil {

Callers

nothing calls this directly

Calls 13

wrapWithTipMethod · 0.95
MinimumCCAPIVersionCheckFunction · 0.92
NewDownloaderFunction · 0.92
CheckTargetMethod · 0.65
GetCurrentUserMethod · 0.65
APIVersionMethod · 0.65
DisplayTextWithFlavorMethod · 0.65
PrepareBuildpackBitsMethod · 0.65
CreateBuildpackMethod · 0.65
DisplayWarningsMethod · 0.65
DisplayOKMethod · 0.65
UploadBuildpackMethod · 0.65

Tested by

no test coverage detected