1package bugcmd
2
3import (
4 "github.com/spf13/cobra"
5
6 "github.com/MichaelMure/git-bug/commands/execenv"
7 "github.com/MichaelMure/git-bug/util/text"
8)
9
10func newBugLabelRmCommand(env *execenv.Env) *cobra.Command {
11 cmd := &cobra.Command{
12 Use: "rm [BUG_ID] LABEL...",
13 Short: "Remove a label from a bug",
14 PreRunE: execenv.LoadBackend(env),
15 RunE: execenv.CloseBackend(env, func(cmd *cobra.Command, args []string) error {
16 return runBugLabelRm(env, args)
17 }),
18 ValidArgsFunction: BugAndLabelsCompletion(env, false),
19 }
20
21 return cmd
22}
23
24func runBugLabelRm(env *execenv.Env, args []string) error {
25 b, args, err := ResolveSelected(env.Backend, args)
26 if err != nil {
27 return err
28 }
29
30 removed := args
31
32 changes, _, err := b.ChangeLabels(nil, text.CleanupOneLineArray(removed))
33
34 for _, change := range changes {
35 env.Out.Println(change)
36 }
37
38 if err != nil {
39 return err
40 }
41
42 return b.Commit()
43}