aboutsummaryrefslogtreecommitdiffstats
path: root/commands/user.go
diff options
context:
space:
mode:
authorMichael Muré <batolettre@gmail.com>2019-04-03 21:33:53 +0200
committerMichael Muré <batolettre@gmail.com>2019-04-03 21:33:53 +0200
commit5b0a92dea43f467f31a65a6f02e937d285cb0a71 (patch)
tree83db754796427b04d28f03c9a32c09112f84db7c /commands/user.go
parent96d356a34d6eec18c987415aad0b2fa92304c98d (diff)
downloadgit-bug-5b0a92dea43f467f31a65a6f02e937d285cb0a71.tar.gz
commands: add a --field flag to "git bug user" to display users details individually
Diffstat (limited to 'commands/user.go')
-rw-r--r--commands/user.go36
1 files changed, 36 insertions, 0 deletions
diff --git a/commands/user.go b/commands/user.go
index ef5d4991..8cb64491 100644
--- a/commands/user.go
+++ b/commands/user.go
@@ -9,6 +9,10 @@ import (
"github.com/spf13/cobra"
)
+var (
+ userFieldsQuery string
+)
+
func runUser(cmd *cobra.Command, args []string) error {
backend, err := cache.NewRepoCache(repo)
if err != nil {
@@ -32,6 +36,35 @@ func runUser(cmd *cobra.Command, args []string) error {
return err
}
+ if userFieldsQuery != "" {
+ switch userFieldsQuery {
+ case "email":
+ fmt.Printf("%s\n", id.Email())
+ case "humanId":
+ fmt.Printf("%s\n", id.HumanId())
+ case "id":
+ fmt.Printf("%s\n", id.Id())
+ case "lastModification":
+ fmt.Printf("%s\n", id.LastModification().
+ Time().Format("Mon Jan 2 15:04:05 2006 +0200"))
+ case "lastModificationLamport":
+ fmt.Printf("%d\n", id.LastModificationLamport())
+ case "login":
+ fmt.Printf("%s\n", id.Login())
+ case "metadata":
+ for key, value := range id.ImmutableMetadata() {
+ fmt.Printf("%s\n%s\n", key, value)
+ }
+ case "name":
+ fmt.Printf("%s\n", id.Name())
+
+ default:
+ return fmt.Errorf("\nUnsupported field: %s\n", userFieldsQuery)
+ }
+
+ return nil
+ }
+
fmt.Printf("Id: %s\n", id.Id())
fmt.Printf("Name: %s\n", id.Name())
fmt.Printf("Login: %s\n", id.Login())
@@ -58,4 +91,7 @@ var userCmd = &cobra.Command{
func init() {
RootCmd.AddCommand(userCmd)
userCmd.Flags().SortFlags = false
+
+ userCmd.Flags().StringVarP(&userFieldsQuery, "field", "f", "",
+ "Select field to display. Valid values are [email,humanId,id,lastModification,lastModificationLamport,login,metadata,name]")
}