From ce5cbce1a95318a89cd3c7351c32ff3f71412458 Mon Sep 17 00:00:00 2001 From: dan9186 Date: Tue, 23 Sep 2025 16:09:11 -0700 Subject: [PATCH] add ability to delete tags --- cmd/tag.go | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/cmd/tag.go b/cmd/tag.go index 3719804..29f0b54 100644 --- a/cmd/tag.go +++ b/cmd/tag.go @@ -18,6 +18,9 @@ func init() { RootCmd.AddCommand(tagCmd) tagCmd.Flags().BoolVarP(&list, "list", "l", false, "list tags in repositories with optional pattern") + tagCmd.Flags().BoolVarP(&del, "delete", "d", false, "delete tags in repositories") + + tagCmd.MarkFlagsMutuallyExclusive("list", "delete") } var tagCmd = &cobra.Command{ @@ -32,11 +35,6 @@ func tagFunc(cmd *cobra.Command, args []string) error { verbose := viper.GetBool("verbose") ctx := client.WithVerbose(context.Background(), verbose) - if !verbose { - uiprogress.Start() - defer uiprogress.Stop() - } - repoDirs, err := clt.GetDirs(ctx, dir) if err != nil { cmd.SilenceUsage = true @@ -55,6 +53,20 @@ func tagFunc(cmd *cobra.Command, args []string) error { return nil } + if del { + if len(args) == 0 { + cmd.SilenceUsage = true + return fmt.Errorf("tag name is required when deleting a tag") + } + + if !verbose { + uiprogress.Start() + defer uiprogress.Stop() + } + + args = append([]string{"--delete"}, args[0]) + } + err = clt.TagRepos(ctx, repoDirs, args...) if err != nil { cmd.SilenceUsage = true