diff options
Diffstat (limited to 'commands/label_rm.go')
-rw-r--r-- | commands/label_rm.go | 40 |
1 files changed, 17 insertions, 23 deletions
diff --git a/commands/label_rm.go b/commands/label_rm.go index 11300c78..445a56a4 100644 --- a/commands/label_rm.go +++ b/commands/label_rm.go @@ -1,24 +1,29 @@ package commands import ( - "fmt" - "github.com/spf13/cobra" - "github.com/MichaelMure/git-bug/cache" "github.com/MichaelMure/git-bug/commands/select" - "github.com/MichaelMure/git-bug/util/interrupt" ) -func runLabelRm(cmd *cobra.Command, args []string) error { - backend, err := cache.NewRepoCache(repo) - if err != nil { - return err +func newLabelRmCommand() *cobra.Command { + env := newEnv() + + cmd := &cobra.Command{ + Use: "rm [<id>] <label>[...]", + Short: "Remove a label from a bug.", + PreRunE: loadBackend(env), + PostRunE: closeBackend(env), + RunE: func(cmd *cobra.Command, args []string) error { + return runLabelRm(env, args) + }, } - defer backend.Close() - interrupt.RegisterCleaner(backend.Close) - b, args, err := _select.ResolveBug(backend, args) + return cmd +} + +func runLabelRm(env *Env, args []string) error { + b, args, err := _select.ResolveBug(env.backend, args) if err != nil { return err } @@ -26,7 +31,7 @@ func runLabelRm(cmd *cobra.Command, args []string) error { changes, _, err := b.ChangeLabels(nil, args) for _, change := range changes { - fmt.Println(change) + env.out.Println(change) } if err != nil { @@ -35,14 +40,3 @@ func runLabelRm(cmd *cobra.Command, args []string) error { return b.Commit() } - -var labelRmCmd = &cobra.Command{ - Use: "rm [<id>] <label>[...]", - Short: "Remove a label from a bug.", - PreRunE: loadRepo, - RunE: runLabelRm, -} - -func init() { - labelCmd.AddCommand(labelRmCmd) -} |