(opts *DeleteOptions)
| 82 | } |
| 83 | |
| 84 | func deleteRun(opts *DeleteOptions) error { |
| 85 | if !opts.NoPrompt { |
| 86 | if err := PromptMissing(opts); err != nil { |
| 87 | return err |
| 88 | } |
| 89 | } |
| 90 | |
| 91 | if opts.ID == "" { |
| 92 | return fmt.Errorf("package identifier is required but was not provided") |
| 93 | } |
| 94 | |
| 95 | packageToDelete, err := packages.GetByID(opts.Client, opts.Client.GetSpaceID(), opts.ID) |
| 96 | if err != nil { |
| 97 | return err |
| 98 | } |
| 99 | |
| 100 | if opts.ConfirmFlags.Confirm.Value { |
| 101 | return delete(opts.Client, packageToDelete) |
| 102 | } else { |
| 103 | packageIdentity := packageToDelete.PackageID + " " + packageToDelete.Version |
| 104 | var enteredPackageIdentity string |
| 105 | if err := opts.Ask(&survey.Input{ |
| 106 | Message: fmt.Sprintf( |
| 107 | `You are about to delete the package "%s" %s. This action cannot be reversed. To confirm, type the package identity (%s):`, |
| 108 | packageIdentity, output.Dimf("(%s)", packageToDelete.GetID()), packageIdentity), |
| 109 | }, &enteredPackageIdentity); err != nil { |
| 110 | return err |
| 111 | } |
| 112 | |
| 113 | if enteredPackageIdentity != packageIdentity { |
| 114 | return fmt.Errorf("input value %s does match expected value %s", enteredPackageIdentity, packageIdentity) |
| 115 | } |
| 116 | |
| 117 | err = delete(opts.Client, packageToDelete) |
| 118 | if err != nil { |
| 119 | return err |
| 120 | } |
| 121 | |
| 122 | fmt.Printf("%s The package, \"%s\" %s was deleted successfully.\n", output.Red("✔"), packageIdentity, output.Dimf("(%s)", packageToDelete.GetID())) |
| 123 | return nil |
| 124 | } |
| 125 | } |
| 126 | |
| 127 | func PromptMissing(opts *DeleteOptions) error { |
| 128 | if opts.ID == "" { |
no test coverage detected