aboutsummaryrefslogtreecommitdiffstats
path: root/commands/close.go
diff options
context:
space:
mode:
authorMichael Muré <batolettre@gmail.com>2018-07-17 19:28:37 +0200
committerMichael Muré <batolettre@gmail.com>2018-07-17 19:28:37 +0200
commit76ac1787b8de8698b878d1837c5fa8f6fe6403fc (patch)
tree2261d605eb533bc5f037887a983da0039281c9f5 /commands/close.go
parent7b19b10e19e5dbbae79a47d3e4338b15b3e8d972 (diff)
downloadgit-bug-76ac1787b8de8698b878d1837c5fa8f6fe6403fc.tar.gz
add bug status + open/close commands
Diffstat (limited to 'commands/close.go')
-rw-r--r--commands/close.go39
1 files changed, 39 insertions, 0 deletions
diff --git a/commands/close.go b/commands/close.go
new file mode 100644
index 00000000..6e668a50
--- /dev/null
+++ b/commands/close.go
@@ -0,0 +1,39 @@
+package commands
+
+import (
+ "errors"
+ "github.com/MichaelMure/git-bug/bug"
+ "github.com/MichaelMure/git-bug/bug/operations"
+ "github.com/MichaelMure/git-bug/repository"
+)
+
+func runCloseBug(repo repository.Repo, args []string) error {
+ if len(args) > 1 {
+ return errors.New("Only closing one bug at a time is supported")
+ }
+
+ if len(args) == 0 {
+ return errors.New("You must provide a bug id")
+ }
+
+ prefix := args[0]
+
+ b, err := bug.FindBug(repo, prefix)
+ if err != nil {
+ return err
+ }
+
+ op := operations.NewSetStatusOp(bug.ClosedStatus)
+
+ b.Append(op)
+
+ err = b.Commit(repo)
+
+ return err
+}
+
+var closeCmd = &Command{
+ Description: "Mark the bug as closed",
+ Usage: "<id>",
+ RunMethod: runCloseBug,
+}