1package commands
 2
 3import (
 4	"fmt"
 5
 6	"github.com/MichaelMure/git-bug/cache"
 7	"github.com/MichaelMure/git-bug/commands/select"
 8	"github.com/MichaelMure/git-bug/util/interrupt"
 9	"github.com/spf13/cobra"
10)
11
12func runLabelAdd(cmd *cobra.Command, args []string) error {
13	backend, err := cache.NewRepoCache(repo)
14	if err != nil {
15		return err
16	}
17	defer backend.Close()
18	interrupt.RegisterCleaner(backend.Close)
19
20	b, args, err := _select.ResolveBug(backend, args)
21	if err != nil {
22		return err
23	}
24
25	changes, _, err := b.ChangeLabels(args, nil)
26
27	for _, change := range changes {
28		fmt.Println(change)
29	}
30
31	if err != nil {
32		return err
33	}
34
35	return b.Commit()
36}
37
38var labelAddCmd = &cobra.Command{
39	Use:     "add [<id>] <label>[...]",
40	Short:   "Add a label to a bug.",
41	PreRunE: loadRepo,
42	RunE:    runLabelAdd,
43}
44
45func init() {
46	labelCmd.AddCommand(labelAddCmd)
47}