diff options
author | Michael Muré <batolettre@gmail.com> | 2019-04-03 21:33:53 +0200 |
---|---|---|
committer | Michael Muré <batolettre@gmail.com> | 2019-04-03 21:33:53 +0200 |
commit | 5b0a92dea43f467f31a65a6f02e937d285cb0a71 (patch) | |
tree | 83db754796427b04d28f03c9a32c09112f84db7c /commands/user.go | |
parent | 96d356a34d6eec18c987415aad0b2fa92304c98d (diff) | |
download | git-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.go | 36 |
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]") } |