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 newBugLabelNewCommand(env *execenv.Env) *cobra.Command {
11 cmd := &cobra.Command{
12 Use: "new [BUG_ID] LABEL...",
13 Short: "Add a label to a bug",
14 PreRunE: execenv.LoadBackendEnsureUser(env),
15 RunE: execenv.CloseBackend(env, func(cmd *cobra.Command, args []string) error {
16 return runBugLabelNew(env, args)
17 }),
18 ValidArgsFunction: BugAndLabelsCompletion(env, true),
19 }
20
21 return cmd
22}
23
24func runBugLabelNew(env *execenv.Env, args []string) error {
25 b, added, err := ResolveSelected(env.Backend, args)
26 if err != nil {
27 return err
28 }
29
30 changes, _, err := b.ChangeLabels(text.CleanupOneLineArray(added), nil)
31
32 for _, change := range changes {
33 env.Out.Println(change)
34 }
35
36 if err != nil {
37 return err
38 }
39
40 return b.Commit()
41}