From 865910408cf25a596c249e61ea071b5943494030 Mon Sep 17 00:00:00 2001 From: Qiao Han Date: Mon, 14 Jul 2025 17:53:49 +0800 Subject: [PATCH] fix: delete all buckets with storage rm --- cmd/storage.go | 1 - internal/storage/rm/rm.go | 15 ++++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/cmd/storage.go b/cmd/storage.go index 3e6eb8fea3..aa3876e92f 100644 --- a/cmd/storage.go +++ b/cmd/storage.go @@ -70,7 +70,6 @@ cp -r ss:///bucket/docs . Example: `rm -r ss:///bucket/docs rm ss:///bucket/docs/example.md ss:///bucket/readme.md `, - Args: cobra.MinimumNArgs(1), RunE: func(cmd *cobra.Command, args []string) error { return rm.Run(cmd.Context(), args, recursive, afero.NewOsFs()) }, diff --git a/internal/storage/rm/rm.go b/internal/storage/rm/rm.go index 720bbce025..56e55a7974 100644 --- a/internal/storage/rm/rm.go +++ b/internal/storage/rm/rm.go @@ -49,9 +49,22 @@ func Run(ctx context.Context, paths []string, recursive bool, fsys afero.Fs) err if err != nil { return err } + if len(groups) == 0 { + if !recursive { + return errors.New(errMissingFlag) + } + buckets, err := api.ListBuckets(ctx) + if err != nil { + return err + } + for _, b := range buckets { + groups[b.Name] = []string{""} + } + } + console := utils.NewConsole() for bucket, prefixes := range groups { confirm := fmt.Sprintf("Confirm deleting files in bucket %v?", utils.Bold(bucket)) - if shouldDelete, err := utils.NewConsole().PromptYesNo(ctx, confirm, false); err != nil { + if shouldDelete, err := console.PromptYesNo(ctx, confirm, false); err != nil { return err } else if !shouldDelete { continue