git-bug/commands/ls-id.go
Sladyn f70f38c8ee ls-id.go: Add ls-id [<prefix>] command
This file adds the ls-id command which returns
the bug id matching the prefix the user enters.
If no prefix entered it lists all the BugId's

Closes https://github.com/MichaelMure/git-bug/issues/47
2019-02-14 00:32:40 +05:30

81 lines
1.1 KiB
Go

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)
}