()
| 398 | } |
| 399 | |
| 400 | func (r *RootCmd) secretDelete() *serpent.Command { |
| 401 | cmd := &serpent.Command{ |
| 402 | Use: "delete <name>", |
| 403 | Aliases: []string{"remove", "rm"}, |
| 404 | Short: "Delete a secret", |
| 405 | Middleware: serpent.Chain( |
| 406 | serpent.RequireNArgs(1), |
| 407 | ), |
| 408 | Options: serpent.OptionSet{ |
| 409 | cliui.SkipPromptOption(), |
| 410 | }, |
| 411 | Handler: func(inv *serpent.Invocation) error { |
| 412 | client, err := r.InitClient(inv) |
| 413 | if err != nil { |
| 414 | return err |
| 415 | } |
| 416 | |
| 417 | name := inv.Args[0] |
| 418 | _, err = cliui.Prompt(inv, cliui.PromptOptions{ |
| 419 | Text: fmt.Sprintf("Delete secret %s?", pretty.Sprint(cliui.DefaultStyles.Code, name)), |
| 420 | IsConfirm: true, |
| 421 | Default: cliui.ConfirmNo, |
| 422 | }) |
| 423 | if err != nil { |
| 424 | return err |
| 425 | } |
| 426 | |
| 427 | if err = client.DeleteUserSecret(inv.Context(), codersdk.Me, name); err != nil { |
| 428 | return xerrors.Errorf("delete secret %q: %w", name, err) |
| 429 | } |
| 430 | |
| 431 | _, _ = fmt.Fprintf(inv.Stdout, "Deleted secret %s at %s.\n", cliui.Keyword(name), cliui.Timestamp(time.Now())) |
| 432 | return nil |
| 433 | }, |
| 434 | } |
| 435 | |
| 436 | return cmd |
| 437 | } |
no test coverage detected