commands: add a "status" command to show a bug status

Michael Muré created

Change summary

commands/status.go           | 50 ++++++++++++++++++++++++++++++++++++++
doc/man/git-bug-status.1     | 29 ++++++++++++++++++++++
doc/man/git-bug.1            |  2 
doc/md/git-bug.md            |  1 
doc/md/git-bug_status.md     | 22 ++++++++++++++++
misc/bash_completion/git-bug | 21 +++++++++++++++
misc/zsh_completion/git-bug  |  2 
7 files changed, 125 insertions(+), 2 deletions(-)

Detailed changes

commands/status.go 🔗

@@ -0,0 +1,50 @@
+package commands
+
+import (
+	"fmt"
+
+	"github.com/MichaelMure/git-bug/cache"
+	"github.com/pkg/errors"
+	"github.com/spf13/cobra"
+)
+
+func runStatus(cmd *cobra.Command, args []string) error {
+	var err error
+
+	if len(args) > 1 {
+		return errors.New("Only one bug id is supported")
+	}
+
+	if len(args) == 0 {
+		return errors.New("You must provide a bug id")
+	}
+
+	backend, err := cache.NewRepoCache(repo)
+	if err != nil {
+		return err
+	}
+	defer backend.Close()
+
+	prefix := args[0]
+
+	b, err := backend.ResolveBugPrefix(prefix)
+	if err != nil {
+		return err
+	}
+
+	snap := b.Snapshot()
+
+	fmt.Println(snap.Status)
+
+	return nil
+}
+
+var statusCmd = &cobra.Command{
+	Use:   "status <id>",
+	Short: "Show the bug status",
+	RunE:  runStatus,
+}
+
+func init() {
+	RootCmd.AddCommand(statusCmd)
+}

doc/man/git-bug-status.1 🔗

@@ -0,0 +1,29 @@
+.TH "GIT-BUG" "1" "Sep 2018" "Generated from git-bug's source code" "" 
+.nh
+.ad l
+
+
+.SH NAME
+.PP
+git\-bug\-status \- Show the bug status
+
+
+.SH SYNOPSIS
+.PP
+\fBgit\-bug status <id> [flags]\fP
+
+
+.SH DESCRIPTION
+.PP
+Show the bug status
+
+
+.SH OPTIONS
+.PP
+\fB\-h\fP, \fB\-\-help\fP[=false]
+    help for status
+
+
+.SH SEE ALSO
+.PP
+\fBgit\-bug(1)\fP

doc/man/git-bug.1 🔗

@@ -29,4 +29,4 @@ It use the same internal storage so it doesn't pollute your project. As you woul
 
 .SH SEE ALSO
 .PP
-\fBgit\-bug\-add(1)\fP, \fBgit\-bug\-close(1)\fP, \fBgit\-bug\-commands(1)\fP, \fBgit\-bug\-comment(1)\fP, \fBgit\-bug\-label(1)\fP, \fBgit\-bug\-ls(1)\fP, \fBgit\-bug\-open(1)\fP, \fBgit\-bug\-pull(1)\fP, \fBgit\-bug\-push(1)\fP, \fBgit\-bug\-show(1)\fP, \fBgit\-bug\-termui(1)\fP, \fBgit\-bug\-title(1)\fP, \fBgit\-bug\-webui(1)\fP
+\fBgit\-bug\-add(1)\fP, \fBgit\-bug\-close(1)\fP, \fBgit\-bug\-commands(1)\fP, \fBgit\-bug\-comment(1)\fP, \fBgit\-bug\-label(1)\fP, \fBgit\-bug\-ls(1)\fP, \fBgit\-bug\-open(1)\fP, \fBgit\-bug\-pull(1)\fP, \fBgit\-bug\-push(1)\fP, \fBgit\-bug\-show(1)\fP, \fBgit\-bug\-status(1)\fP, \fBgit\-bug\-termui(1)\fP, \fBgit\-bug\-title(1)\fP, \fBgit\-bug\-webui(1)\fP

doc/md/git-bug.md 🔗

@@ -30,6 +30,7 @@ git-bug [flags]
 * [git-bug pull](git-bug_pull.md)	 - Pull bugs update from a git remote
 * [git-bug push](git-bug_push.md)	 - Push bugs update to a git remote
 * [git-bug show](git-bug_show.md)	 - Display the details of a bug
+* [git-bug status](git-bug_status.md)	 - Show the bug status
 * [git-bug termui](git-bug_termui.md)	 - Launch the terminal UI
 * [git-bug title](git-bug_title.md)	 - Display a bug's title
 * [git-bug webui](git-bug_webui.md)	 - Launch the web UI

doc/md/git-bug_status.md 🔗

@@ -0,0 +1,22 @@
+## git-bug status
+
+Show the bug status
+
+### Synopsis
+
+Show the bug status
+
+```
+git-bug status <id> [flags]
+```
+
+### Options
+
+```
+  -h, --help   help for status
+```
+
+### SEE ALSO
+
+* [git-bug](git-bug.md)	 - A bugtracker embedded in Git
+

misc/bash_completion/git-bug 🔗

@@ -508,6 +508,26 @@ _git-bug_show()
     noun_aliases=()
 }
 
+_git-bug_status()
+{
+    last_command="git-bug_status"
+
+    command_aliases=()
+
+    commands=()
+
+    flags=()
+    two_word_flags=()
+    local_nonpersistent_flags=()
+    flags_with_completion=()
+    flags_completion=()
+
+
+    must_have_one_flag=()
+    must_have_one_noun=()
+    noun_aliases=()
+}
+
 _git-bug_termui()
 {
     last_command="git-bug_termui"
@@ -612,6 +632,7 @@ _git-bug_root_command()
     commands+=("pull")
     commands+=("push")
     commands+=("show")
+    commands+=("status")
     commands+=("termui")
     commands+=("title")
     commands+=("webui")

misc/zsh_completion/git-bug 🔗

@@ -8,7 +8,7 @@ case $state in
   level1)
     case $words[1] in
       git-bug)
-        _arguments '1: :(add close commands comment label ls open pull push show termui title webui)'
+        _arguments '1: :(add close commands comment label ls open pull push show status termui title webui)'
       ;;
       *)
         _arguments '*: :_files'