github.com/loafoe/cli@v7.1.0+incompatible/command/v7/delete_buildpack_command.go (about) 1 package v7 2 3 import ( 4 "code.cloudfoundry.org/cli/actor/actionerror" 5 "code.cloudfoundry.org/cli/command/flag" 6 ) 7 8 type DeleteBuildpackCommand struct { 9 BaseCommand 10 11 RequiredArgs flag.BuildpackName `positional-args:"yes"` 12 usage interface{} `usage:"CF_NAME delete-buildpack BUILDPACK [-f] [-s STACK]"` 13 relatedCommands interface{} `related_commands:"buildpacks"` 14 Force bool `long:"force" short:"f" description:"Force deletion without confirmation"` 15 Stack string `long:"stack" short:"s" description:"Specify stack to disambiguate buildpacks with the same name. Required when buildpack name is ambiguous"` 16 } 17 18 func (cmd DeleteBuildpackCommand) Execute(args []string) error { 19 err := cmd.SharedActor.CheckTarget(false, false) 20 if err != nil { 21 return err 22 } 23 24 if !cmd.Force { 25 response, uiErr := cmd.UI.DisplayBoolPrompt(false, "Really delete the {{.ModelType}} {{.ModelName}}?", map[string]interface{}{ 26 "ModelType": "buildpack", 27 "ModelName": cmd.RequiredArgs.Buildpack, 28 }) 29 if uiErr != nil { 30 return uiErr 31 } 32 33 if !response { 34 cmd.UI.DisplayText("Delete cancelled") 35 return nil 36 } 37 } 38 39 if cmd.Stack == "" { 40 cmd.UI.DisplayTextWithFlavor("Deleting buildpack {{.BuildpackName}}...", map[string]interface{}{ 41 "BuildpackName": cmd.RequiredArgs.Buildpack, 42 }) 43 44 } else { 45 cmd.UI.DisplayTextWithFlavor("Deleting buildpack {{.BuildpackName}} with stack {{.Stack}}...", map[string]interface{}{ 46 "BuildpackName": cmd.RequiredArgs.Buildpack, 47 "Stack": cmd.Stack, 48 }) 49 } 50 warnings, err := cmd.Actor.DeleteBuildpackByNameAndStack(cmd.RequiredArgs.Buildpack, cmd.Stack) 51 cmd.UI.DisplayWarnings(warnings) 52 53 if err != nil { 54 switch err.(type) { 55 case actionerror.BuildpackNotFoundError: 56 if cmd.Stack == "" { 57 cmd.UI.DisplayWarning("Buildpack '{{.BuildpackName}}' does not exist.", map[string]interface{}{ 58 "BuildpackName": cmd.RequiredArgs.Buildpack, 59 }) 60 } else { 61 cmd.UI.DisplayWarning("Buildpack '{{.BuildpackName}}' with stack '{{.Stack}}' not found.", map[string]interface{}{ 62 "BuildpackName": cmd.RequiredArgs.Buildpack, 63 "Stack": cmd.Stack, 64 }) 65 } 66 default: 67 return err 68 } 69 } 70 71 cmd.UI.DisplayOK() 72 73 return nil 74 }