MCPcopy Index your code
hub / github.com/cloudfoundry/cli / Execute

Method Execute

cf/commands/buildpack/delete_buildpack.go:63–120  ·  view source on GitHub ↗
(c flags.FlagContext)

Source from the content-addressed store, hash-verified

61}
62
63func (cmd *DeleteBuildpack) Execute(c flags.FlagContext) error {
64 var (
65 err error
66 buildpack models.Buildpack
67 )
68
69 buildpackName := c.Args()[0]
70 stack := c.String("s")
71
72 force := c.Bool("f")
73
74 if !force {
75 answer := cmd.ui.ConfirmDelete("buildpack", buildpackName)
76 if !answer {
77 return nil
78 }
79 }
80
81 if stack == "" {
82 buildpack, err = cmd.buildpackRepo.FindByName(buildpackName)
83 cmd.ui.Say(T("Deleting buildpack {{.BuildpackName}}...", map[string]interface{}{"BuildpackName": terminal.EntityNameColor(buildpackName)}))
84 } else {
85 buildpack, err = cmd.buildpackRepo.FindByNameAndStack(buildpackName, stack)
86 cmd.ui.Say(T("Deleting buildpack {{.BuildpackName}} with stack {{.Stack}}...", map[string]interface{}{"BuildpackName": terminal.EntityNameColor(buildpackName), "Stack": terminal.EntityNameColor(stack)}))
87 }
88
89 switch err.(type) {
90 case nil: // do nothing
91 case *errors.ModelNotFoundError:
92 cmd.ui.Ok()
93 if stack == "" {
94 cmd.ui.Warn(T("Buildpack {{.BuildpackName}} does not exist.", map[string]interface{}{"BuildpackName": buildpackName}))
95 } else {
96 cmd.ui.Warn(T("Buildpack '{{.BuildpackName}}' with stack '{{.Stack}}' not found.", map[string]interface{}{"BuildpackName": buildpackName, "Stack": stack}))
97 }
98 return nil
99 case *errors.AmbiguousModelError:
100 var err2 error
101 buildpack, err2 = cmd.buildpackRepo.FindByNameWithNilStack(buildpackName)
102 if err2 != nil {
103 return fmt.Errorf("%s Specify the stack (using -s) to disambiguate.", err.Error())
104 }
105 default:
106 return err
107
108 }
109
110 err = cmd.buildpackRepo.Delete(buildpack.GUID)
111 if err != nil {
112 return errors.New(T("Error deleting buildpack {{.Name}}\n{{.Error}}", map[string]interface{}{
113 "Name": terminal.EntityNameColor(buildpack.Name),
114 "Error": err.Error(),
115 }))
116 }
117
118 cmd.ui.Ok()
119 return nil
120}

Callers

nothing calls this directly

Calls 14

EntityNameColorFunction · 0.92
NewFunction · 0.92
ArgsMethod · 0.65
StringMethod · 0.65
BoolMethod · 0.65
ConfirmDeleteMethod · 0.65
FindByNameMethod · 0.65
SayMethod · 0.65
FindByNameAndStackMethod · 0.65
OkMethod · 0.65
WarnMethod · 0.65

Tested by

no test coverage detected