label add.go

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