cmds: cleanup and re-generate files

This commit is contained in:
Michael Muré 2020-06-24 14:52:48 +02:00
parent ebd1030cde
commit 1d06244c82
No known key found for this signature in database
GPG Key ID: A4457C029293126F
12 changed files with 104 additions and 236 deletions

View File

@ -95,18 +95,15 @@ func lsJsonFormatter(backend *cache.RepoCache, bugExcerpts []*cache.BugExcerpt)
jsonBugs := make([]JSONBugExcerpt, len(bugExcerpts))
for i, b := range bugExcerpts {
jsonBug := JSONBugExcerpt{
b.Id.String(),
b.Id.Human(),
time.Unix(b.CreateUnixTime, 0),
time.Unix(b.EditUnixTime, 0),
b.Status.String(),
b.Labels,
b.Title,
[]JSONIdentity{},
[]JSONIdentity{},
JSONIdentity{},
b.LenComments,
b.CreateMetadata,
Id: b.Id.String(),
HumanId: b.Id.Human(),
CreationTime: time.Unix(b.CreateUnixTime, 0),
LastEdited: time.Unix(b.EditUnixTime, 0),
Status: b.Status.String(),
Labels: b.Labels,
Title: b.Title,
Comments: b.LenComments,
Metadata: b.CreateMetadata,
}
if b.AuthorId != "" {
@ -114,46 +111,27 @@ func lsJsonFormatter(backend *cache.RepoCache, bugExcerpts []*cache.BugExcerpt)
if err != nil {
return err
}
i, err := NewJSONIdentity(author)
if err != nil {
return err
}
jsonBug.Author = i
jsonBug.Author = NewJSONIdentityFromExcerpt(author)
} else {
i, err := NewJSONIdentity(b.LegacyAuthor)
if err != nil {
return err
}
jsonBug.Author = i
jsonBug.Author = NewJSONIdentityFromLegacyExcerpt(&b.LegacyAuthor)
}
for _, element := range b.Actors {
jsonBug.Actors = make([]JSONIdentity, len(b.Actors))
for i, element := range b.Actors {
actor, err := backend.ResolveIdentityExcerpt(element)
if err != nil {
return err
}
i, err := NewJSONIdentity(actor)
if err != nil {
return err
}
jsonBug.Actors = append(jsonBug.Actors, i)
jsonBug.Actors[i] = NewJSONIdentityFromExcerpt(actor)
}
for _, element := range b.Participants {
jsonBug.Participants = make([]JSONIdentity, len(b.Participants))
for i, element := range b.Participants {
participant, err := backend.ResolveIdentityExcerpt(element)
if err != nil {
return err
}
i, err := NewJSONIdentity(participant)
if err != nil {
return err
}
jsonBug.Participants = append(jsonBug.Participants, i)
jsonBug.Participants[i] = NewJSONIdentityFromExcerpt(participant)
}
jsonBugs[i] = jsonBug

View File

@ -4,14 +4,16 @@ import (
"encoding/json"
"errors"
"fmt"
"strings"
"time"
"github.com/spf13/cobra"
"github.com/MichaelMure/git-bug/bug"
"github.com/MichaelMure/git-bug/cache"
_select "github.com/MichaelMure/git-bug/commands/select"
"github.com/MichaelMure/git-bug/util/colors"
"github.com/MichaelMure/git-bug/util/interrupt"
"github.com/spf13/cobra"
"strings"
"time"
)
var (
@ -82,8 +84,6 @@ func runShowBug(_ *cobra.Command, args []string) error {
return showOrgmodeFormatter(snapshot)
case "json":
return showJsonFormatter(snapshot)
case "plain":
return showPlainFormatter(snapshot)
case "default":
return showDefaultFormatter(snapshot)
default:
@ -165,83 +165,6 @@ func showDefaultFormatter(snapshot *bug.Snapshot) error {
return nil
}
func showPlainFormatter(snapshot *bug.Snapshot) error {
// Header
fmt.Printf("%s [%s] %s\n",
snapshot.Id().Human(),
snapshot.Status,
snapshot.Title,
)
fmt.Printf("author: %s\n",
snapshot.Author.DisplayName(),
)
fmt.Printf("creation time: %s\n",
snapshot.CreatedAt.String(),
)
fmt.Printf("last edit: %s\n",
snapshot.LastEditTime().String(),
)
// Labels
var labels = make([]string, len(snapshot.Labels))
for i := range snapshot.Labels {
labels[i] = string(snapshot.Labels[i])
}
fmt.Printf("labels: %s\n",
strings.Join(labels, ", "),
)
// Actors
var actors = make([]string, len(snapshot.Actors))
for i := range snapshot.Actors {
actors[i] = snapshot.Actors[i].DisplayName()
}
fmt.Printf("actors: %s\n",
strings.Join(actors, ", "),
)
// Participants
var participants = make([]string, len(snapshot.Participants))
for i := range snapshot.Participants {
participants[i] = snapshot.Participants[i].DisplayName()
}
fmt.Printf("participants: %s\n",
strings.Join(participants, ", "),
)
// Comments
indent := " "
for i, comment := range snapshot.Comments {
var message string
fmt.Printf("%s#%d %s <%s>\n",
indent,
i,
comment.Author.DisplayName(),
comment.Author.Email(),
)
if comment.Message == "" {
message = "No description provided."
} else {
message = comment.Message
}
fmt.Printf("%s%s\n",
indent,
strings.ReplaceAll(message, "\n", fmt.Sprintf("\n%s", indent)),
)
}
return nil
}
type JSONBugSnapshot struct {
Id string `json:"id"`
HumanId string `json:"human_id"`
@ -259,47 +182,31 @@ type JSONBugSnapshot struct {
}
type JSONComment struct {
Id int `json:"id"`
AuthorName string `json:"author_name"`
AuthorLogin string `json:"author_login"`
Message string `json:"message"`
Id int `json:"id"`
Author JSONIdentity `json:"author"`
Message string `json:"message"`
}
func showJsonFormatter(snapshot *bug.Snapshot) error {
jsonBug := JSONBugSnapshot{
snapshot.Id().String(),
snapshot.Id().Human(),
snapshot.CreatedAt,
snapshot.LastEditTime(),
snapshot.Status.String(),
snapshot.Labels,
snapshot.Title,
JSONIdentity{},
[]JSONIdentity{},
[]JSONIdentity{},
[]JSONComment{},
Id: snapshot.Id().String(),
HumanId: snapshot.Id().Human(),
CreationTime: snapshot.CreatedAt,
LastEdited: snapshot.LastEditTime(),
Status: snapshot.Status.String(),
Labels: snapshot.Labels,
Title: snapshot.Title,
Author: NewJSONIdentity(snapshot.Author),
}
author, err := NewJSONIdentity(snapshot.Author)
if err != nil {
return err
}
jsonBug.Author = author
for _, element := range snapshot.Actors {
actor, err := NewJSONIdentity(element)
if err != nil {
return err
}
jsonBug.Actors = append(jsonBug.Actors, actor)
jsonBug.Actors = make([]JSONIdentity, len(snapshot.Actors))
for i, element := range snapshot.Actors {
jsonBug.Actors[i] = NewJSONIdentity(element)
}
for _, element := range snapshot.Participants {
participant, err := NewJSONIdentity(element)
if err != nil {
return err
}
jsonBug.Participants = append(jsonBug.Participants, participant)
jsonBug.Participants = make([]JSONIdentity, len(snapshot.Participants))
for i, element := range snapshot.Participants {
jsonBug.Participants[i] = NewJSONIdentity(element)
}
for i, comment := range snapshot.Comments {
@ -310,10 +217,9 @@ func showJsonFormatter(snapshot *bug.Snapshot) error {
message = comment.Message
}
jsonBug.Comments = append(jsonBug.Comments, JSONComment{
i,
comment.Author.Name(),
comment.Author.Login(),
message,
Id: i,
Author: NewJSONIdentity(comment.Author),
Message: message,
})
}
@ -417,5 +323,5 @@ func init() {
showCmd.Flags().StringVarP(&showFieldsQuery, "field", "", "",
"Select field to display. Valid values are [author,authorEmail,createTime,lastEdit,humanId,id,labels,shortId,status,title,actors,participants]")
showCmd.Flags().StringVarP(&showOutputFormat, "format", "f", "default",
"Select the output formatting style. Valid values are [default,plain,json,org-mode]")
"Select the output formatting style. Valid values are [default,json,org-mode]")
}

View File

@ -2,14 +2,12 @@ package commands
import (
"encoding/json"
"errors"
"fmt"
"reflect"
"github.com/spf13/cobra"
"github.com/MichaelMure/git-bug/cache"
identity2 "github.com/MichaelMure/git-bug/identity"
"github.com/MichaelMure/git-bug/identity"
"github.com/MichaelMure/git-bug/util/colors"
"github.com/MichaelMure/git-bug/util/interrupt"
)
@ -37,12 +35,8 @@ func runUserLs(_ *cobra.Command, _ []string) error {
}
switch userLsOutputFormat {
case "org-mode":
return userLsOrgmodeFormatter(users)
case "json":
return userLsJsonFormatter(users)
case "plain":
return userLsPlainFormatter(users)
case "default":
return userLsDefaultFormatter(users)
default:
@ -57,46 +51,29 @@ type JSONIdentity struct {
Login string `json:"login"`
}
func NewJSONIdentity(id interface{}) (JSONIdentity, error) {
switch id.(type) {
case *cache.IdentityExcerpt:
i := id.(*cache.IdentityExcerpt)
return JSONIdentity{
i.Id.String(),
i.Id.Human(),
i.Name,
i.Login,
}, nil
case identity2.Interface:
i := id.(identity2.Interface)
return JSONIdentity{
i.Id().String(),
i.Id().Human(),
i.Name(),
i.Login(),
}, nil
case cache.LegacyAuthorExcerpt:
i := id.(cache.LegacyAuthorExcerpt)
return JSONIdentity{
"",
"",
i.Name,
i.Login,
}, nil
default:
return JSONIdentity{}, errors.New(fmt.Sprintf("Inconvertible type, attempting to convert type %s to type %s.", reflect.TypeOf(id).String(), reflect.TypeOf(JSONIdentity{}).String()))
func NewJSONIdentity(i identity.Interface) JSONIdentity {
return JSONIdentity{
Id: i.Id().String(),
HumanId: i.Id().Human(),
Name: i.Name(),
Login: i.Login(),
}
}
func userLsPlainFormatter(users []*cache.IdentityExcerpt) error {
for _, user := range users {
fmt.Printf("%s %s\n",
user.Id.Human(),
user.DisplayName(),
)
func NewJSONIdentityFromExcerpt(excerpt *cache.IdentityExcerpt) JSONIdentity {
return JSONIdentity{
Id: excerpt.Id.String(),
HumanId: excerpt.Id.Human(),
Name: excerpt.Name,
Login: excerpt.Login,
}
}
return nil
func NewJSONIdentityFromLegacyExcerpt(excerpt *cache.LegacyAuthorExcerpt) JSONIdentity {
return JSONIdentity{
Name: excerpt.Name,
Login: excerpt.Login,
}
}
func userLsDefaultFormatter(users []*cache.IdentityExcerpt) error {
@ -111,13 +88,9 @@ func userLsDefaultFormatter(users []*cache.IdentityExcerpt) error {
}
func userLsJsonFormatter(users []*cache.IdentityExcerpt) error {
jsonUsers := []JSONIdentity{}
for _, user := range users {
jsonUser, err := NewJSONIdentity(user)
if err != nil {
return err
}
jsonUsers = append(jsonUsers, jsonUser)
jsonUsers := make([]JSONIdentity, len(users))
for i, user := range users {
jsonUsers[i] = NewJSONIdentityFromExcerpt(user)
}
jsonObject, _ := json.MarshalIndent(jsonUsers, "", " ")
@ -125,17 +98,6 @@ func userLsJsonFormatter(users []*cache.IdentityExcerpt) error {
return nil
}
func userLsOrgmodeFormatter(users []*cache.IdentityExcerpt) error {
for _, user := range users {
fmt.Printf("* %s %s\n",
user.Id.Human(),
user.DisplayName(),
)
}
return nil
}
var userLsCmd = &cobra.Command{
Use: "ls",
Short: "List identities.",
@ -147,5 +109,5 @@ func init() {
userCmd.AddCommand(userLsCmd)
userLsCmd.Flags().SortFlags = false
userLsCmd.Flags().StringVarP(&userLsOutputFormat, "format", "f", "default",
"Select the output formatting style. Valid values are [default,plain,json,org-mode]")
"Select the output formatting style. Valid values are [default,json]")
}

View File

@ -59,7 +59,7 @@ You can pass an additional query to filter and order the list. This query can be
.PP
\fB\-f\fP, \fB\-\-format\fP="default"
Select the output formatting style. Valid values are [default, plain(text), json]
Select the output formatting style. Valid values are [default,plain,json,org\-mode]
.PP
\fB\-h\fP, \fB\-\-help\fP[=false]

View File

@ -19,8 +19,12 @@ Display the details of a bug.
.SH OPTIONS
.PP
\fB\-f\fP, \fB\-\-field\fP=""
Select field to display. Valid values are [author,authorEmail,createTime,humanId,id,labels,shortId,status,title,actors,participants]
\fB\-\-field\fP=""
Select field to display. Valid values are [author,authorEmail,createTime,lastEdit,humanId,id,labels,shortId,status,title,actors,participants]
.PP
\fB\-f\fP, \fB\-\-format\fP="default"
Select the output formatting style. Valid values are [default,json,org\-mode]
.PP
\fB\-h\fP, \fB\-\-help\fP[=false]

View File

@ -18,6 +18,10 @@ List identities.
.SH OPTIONS
.PP
\fB\-f\fP, \fB\-\-format\fP="default"
Select the output formatting style. Valid values are [default,json]
.PP
\fB\-h\fP, \fB\-\-help\fP[=false]
help for ls

View File

@ -35,7 +35,7 @@ git bug ls --status closed --by creation
-n, --no strings Filter by absence of something. Valid values are [label]
-b, --by string Sort the results by a characteristic. Valid values are [id,creation,edit] (default "creation")
-d, --direction string Select the sorting direction. Valid values are [asc,desc] (default "asc")
-f, --format string Select the output formatting style. Valid values are [default, plain(text), json] (default "default")
-f, --format string Select the output formatting style. Valid values are [default,plain,json,org-mode] (default "default")
-h, --help help for ls
```

View File

@ -13,8 +13,9 @@ git-bug show [<id>] [flags]
### Options
```
-f, --field string Select field to display. Valid values are [author,authorEmail,createTime,humanId,id,labels,shortId,status,title,actors,participants]
-h, --help help for show
--field string Select field to display. Valid values are [author,authorEmail,createTime,lastEdit,humanId,id,labels,shortId,status,title,actors,participants]
-f, --format string Select the output formatting style. Valid values are [default,json,org-mode] (default "default")
-h, --help help for show
```
### SEE ALSO

View File

@ -13,7 +13,8 @@ git-bug user ls [flags]
### Options
```
-h, --help help for ls
-f, --format string Select the output formatting style. Valid values are [default,json] (default "default")
-h, --help help for ls
```
### SEE ALSO

View File

@ -933,8 +933,11 @@ _git-bug_show()
flags+=("--field=")
two_word_flags+=("--field")
two_word_flags+=("-f")
local_nonpersistent_flags+=("--field=")
flags+=("--format=")
two_word_flags+=("--format")
two_word_flags+=("-f")
local_nonpersistent_flags+=("--format=")
must_have_one_flag=()
must_have_one_noun=()
@ -1122,6 +1125,10 @@ _git-bug_user_ls()
flags_with_completion=()
flags_completion=()
flags+=("--format=")
two_word_flags+=("--format")
two_word_flags+=("-f")
local_nonpersistent_flags+=("--format=")
must_have_one_flag=()
must_have_one_noun=()

View File

@ -159,8 +159,8 @@ Register-ArgumentCompleter -Native -CommandName 'git-bug' -ScriptBlock {
[CompletionResult]::new('--by', 'by', [CompletionResultType]::ParameterName, 'Sort the results by a characteristic. Valid values are [id,creation,edit]')
[CompletionResult]::new('-d', 'd', [CompletionResultType]::ParameterName, 'Select the sorting direction. Valid values are [asc,desc]')
[CompletionResult]::new('--direction', 'direction', [CompletionResultType]::ParameterName, 'Select the sorting direction. Valid values are [asc,desc]')
[CompletionResult]::new('-f', 'f', [CompletionResultType]::ParameterName, 'Select the output formatting style. Valid values are [default, plain(text), json]')
[CompletionResult]::new('--format', 'format', [CompletionResultType]::ParameterName, 'Select the output formatting style. Valid values are [default, plain(text), json]')
[CompletionResult]::new('-f', 'f', [CompletionResultType]::ParameterName, 'Select the output formatting style. Valid values are [default,plain,json,org-mode]')
[CompletionResult]::new('--format', 'format', [CompletionResultType]::ParameterName, 'Select the output formatting style. Valid values are [default,plain,json,org-mode]')
break
}
'git-bug;ls-id' {
@ -179,8 +179,9 @@ Register-ArgumentCompleter -Native -CommandName 'git-bug' -ScriptBlock {
break
}
'git-bug;show' {
[CompletionResult]::new('-f', 'f', [CompletionResultType]::ParameterName, 'Select field to display. Valid values are [author,authorEmail,createTime,humanId,id,labels,shortId,status,title,actors,participants]')
[CompletionResult]::new('--field', 'field', [CompletionResultType]::ParameterName, 'Select field to display. Valid values are [author,authorEmail,createTime,humanId,id,labels,shortId,status,title,actors,participants]')
[CompletionResult]::new('--field', 'field', [CompletionResultType]::ParameterName, 'Select field to display. Valid values are [author,authorEmail,createTime,lastEdit,humanId,id,labels,shortId,status,title,actors,participants]')
[CompletionResult]::new('-f', 'f', [CompletionResultType]::ParameterName, 'Select the output formatting style. Valid values are [default,json,org-mode]')
[CompletionResult]::new('--format', 'format', [CompletionResultType]::ParameterName, 'Select the output formatting style. Valid values are [default,json,org-mode]')
break
}
'git-bug;status' {
@ -221,6 +222,8 @@ Register-ArgumentCompleter -Native -CommandName 'git-bug' -ScriptBlock {
break
}
'git-bug;user;ls' {
[CompletionResult]::new('-f', 'f', [CompletionResultType]::ParameterName, 'Select the output formatting style. Valid values are [default,json]')
[CompletionResult]::new('--format', 'format', [CompletionResultType]::ParameterName, 'Select the output formatting style. Valid values are [default,json]')
break
}
'git-bug;version' {
@ -242,4 +245,4 @@ Register-ArgumentCompleter -Native -CommandName 'git-bug' -ScriptBlock {
})
$completions.Where{ $_.CompletionText -like "$wordToComplete*" } |
Sort-Object -Property ListItemText
}
}

View File

@ -304,7 +304,7 @@ function _git-bug_ls {
'(*-n *--no)'{\*-n,\*--no}'[Filter by absence of something. Valid values are [label]]:' \
'(-b --by)'{-b,--by}'[Sort the results by a characteristic. Valid values are [id,creation,edit]]:' \
'(-d --direction)'{-d,--direction}'[Select the sorting direction. Valid values are [asc,desc]]:' \
'(-f --format)'{-f,--format}'[Select the output formatting style. Valid values are [default, plain(text), json]]:'
'(-f --format)'{-f,--format}'[Select the output formatting style. Valid values are [default,plain,json,org-mode]]:'
}
function _git-bug_ls-id {
@ -329,7 +329,8 @@ function _git-bug_select {
function _git-bug_show {
_arguments \
'(-f --field)'{-f,--field}'[Select field to display. Valid values are [author,authorEmail,createTime,humanId,id,labels,shortId,status,title,actors,participants]]:'
'--field[Select field to display. Valid values are [author,authorEmail,createTime,lastEdit,humanId,id,labels,shortId,status,title,actors,participants]]:' \
'(-f --format)'{-f,--format}'[Select the output formatting style. Valid values are [default,json,org-mode]]:'
}
@ -443,7 +444,8 @@ function _git-bug_user_create {
}
function _git-bug_user_ls {
_arguments
_arguments \
'(-f --format)'{-f,--format}'[Select the output formatting style. Valid values are [default,json]]:'
}
function _git-bug_version {