aboutsummaryrefslogtreecommitdiffstats
path: root/commands
diff options
context:
space:
mode:
Diffstat (limited to 'commands')
-rw-r--r--commands/ls-id.go80
1 files changed, 80 insertions, 0 deletions
diff --git a/commands/ls-id.go b/commands/ls-id.go
new file mode 100644
index 00000000..6e6da4c1
--- /dev/null
+++ b/commands/ls-id.go
@@ -0,0 +1,80 @@
+package commands
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/MichaelMure/git-bug/bug"
+ "github.com/spf13/cobra"
+)
+
+func runLsID(cmd *cobra.Command, args []string) error {
+
+ if len(args) < 1 {
+ _, err := ListAllID()
+
+ if err != nil {
+ return err
+ }
+
+ return nil
+ }
+ answer, err := ListID(args[0])
+
+ if err != nil {
+ return err
+ }
+
+ if answer == "" {
+ fmt.Printf("No matching bug Id with prefix %s\n", args[0])
+ } else {
+ fmt.Println(answer)
+ }
+
+ return nil
+}
+
+//ListID lists the local bug id after taking the prefix as input
+func ListID(prefix string) (string, error) {
+
+ IDlist, err := bug.ListLocalIds(repo)
+
+ if err != nil {
+ return "", err
+ }
+
+ for _, id := range IDlist {
+ if strings.HasPrefix(id, prefix) {
+ return id, nil
+ }
+ }
+
+ return "", nil
+
+}
+
+//ListAllID lists all the local bug id
+func ListAllID() (string, error) {
+
+ IDlist, err := bug.ListLocalIds(repo)
+ if err != nil {
+ return "", err
+ }
+
+ for _, id := range IDlist {
+ fmt.Println(id)
+ }
+
+ return "", nil
+}
+
+var listBugIDCmd = &cobra.Command{
+ Use: "ls-id [<prefix>]",
+ Short: "List Bug Id",
+ PreRunE: loadRepo,
+ RunE: runLsID,
+}
+
+func init() {
+ RootCmd.AddCommand(listBugIDCmd)
+}