From 9130c09e560d32b27f605d028a9b1221c9887304 Mon Sep 17 00:00:00 2001 From: lew Date: Wed, 11 Feb 2026 17:57:05 +0000 Subject: [PATCH] feat(rm): adds --yes flag to auto-accept all prompts --- README.md | 3 +++ cmd/del.go | 7 ++++++- testdata/help-remove.ct | 2 ++ testdata/remove-yes.ct | 8 ++++++++ 4 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 testdata/remove-yes.ct diff --git a/README.md b/README.md index 8eabc32..a55fac9 100644 --- a/README.md +++ b/README.md @@ -197,6 +197,9 @@ pda rm kitty --key "?og" pda rm kitty -i # ??? remove 'kitty'? (y/n) # ==> y + +# --yes/-y to auto-accept all confirmation prompts. +pda rm kitty -y ```

diff --git a/cmd/del.go b/cmd/del.go index a3f0da3..b7ffefc 100644 --- a/cmd/del.go +++ b/cmd/del.go @@ -47,6 +47,10 @@ func del(cmd *cobra.Command, args []string) error { if err != nil { return err } + yes, err := cmd.Flags().GetBool("yes") + if err != nil { + return err + } keyPatterns, err := cmd.Flags().GetStringSlice("key") if err != nil { return err @@ -72,7 +76,7 @@ func del(cmd *cobra.Command, args []string) error { byStore := make(map[string]*storeTargets) var storeOrder []string for _, target := range targets { - if interactive || config.Key.AlwaysPromptDelete { + if !yes && (interactive || config.Key.AlwaysPromptDelete) { var confirm string promptf("remove '%s'? (y/n)", target.display) if err := scanln(&confirm); err != nil { @@ -120,6 +124,7 @@ func del(cmd *cobra.Command, args []string) error { func init() { delCmd.Flags().BoolP("interactive", "i", false, "Prompt yes/no for each deletion") + delCmd.Flags().BoolP("yes", "y", false, "Skip all confirmation prompts") delCmd.Flags().StringSliceP("key", "k", nil, "Delete keys matching glob pattern (repeatable)") rootCmd.AddCommand(delCmd) } diff --git a/testdata/help-remove.ct b/testdata/help-remove.ct index fe2bef6..2a28005 100644 --- a/testdata/help-remove.ct +++ b/testdata/help-remove.ct @@ -12,6 +12,7 @@ Flags: -h, --help help for remove -i, --interactive Prompt yes/no for each deletion -k, --key strings Delete keys matching glob pattern (repeatable) + -y, --yes Skip all confirmation prompts Delete one or more keys Usage: @@ -24,3 +25,4 @@ Flags: -h, --help help for remove -i, --interactive Prompt yes/no for each deletion -k, --key strings Delete keys matching glob pattern (repeatable) + -y, --yes Skip all confirmation prompts diff --git a/testdata/remove-yes.ct b/testdata/remove-yes.ct new file mode 100644 index 0000000..7d2b8e0 --- /dev/null +++ b/testdata/remove-yes.ct @@ -0,0 +1,8 @@ +$ pda set a@ry "1" +$ pda set b@ry "2" +$ pda rm a@ry -i -y +$ pda get a@ry --> FAIL +FAIL cannot get 'a@ry': no such key +hint did you mean 'b'? +$ pda get b@ry +"2"