Fix token create --format json

It will now output the token in json format

Fixes #63

Signed-off-by: Djordje Lukic <djordje.lukic@docker.com>
This commit is contained in:
Djordje Lukic 2020-10-22 17:39:36 +02:00
Родитель dec3d97f45
Коммит 57a99cefbb
4 изменённых файлов: 80 добавлений и 93 удалений

Просмотреть файл

@ -109,11 +109,12 @@ func runList(streams command.Streams, hubClient *hub.Client, opts listOptions, a
return err
}
return opts.Print(streams.Out(), &helper{repositories, total}, printRepositories)
return opts.Print(streams.Out(), repositories, printRepositories(total))
}
func printRepositories(out io.Writer, values interface{}) error {
h := values.(*helper)
func printRepositories(total int) format.PrettyPrinter {
return func(out io.Writer, values interface{}) error {
repositories := values.([]hub.Repository)
tw := tabwriter.New(out, " ")
for _, column := range defaultColumns {
@ -122,7 +123,7 @@ func printRepositories(out io.Writer, values interface{}) error {
tw.Line()
for _, repository := range h.repositories {
for _, repository := range repositories {
for _, column := range defaultColumns {
value, width := column.value(repository)
tw.Column(value, width)
@ -133,13 +134,9 @@ func printRepositories(out io.Writer, values interface{}) error {
return err
}
if len(h.repositories) < h.total {
fmt.Fprintln(out, ansi.Info(fmt.Sprintf("%v/%v listed, use --all flag to show all", len(h.repositories), h.total)))
if len(repositories) < total {
fmt.Fprintln(out, ansi.Info(fmt.Sprintf("%v/%v listed, use --all flag to show all", len(repositories), total)))
}
return nil
}
type helper struct {
repositories []hub.Repository
total int
}
}

Просмотреть файл

@ -170,11 +170,12 @@ func runList(streams command.Streams, hubClient *hub.Client, opts listOptions, r
defaultColumns = append(defaultColumns, platformColumn)
}
return opts.Print(streams.Out(), &helper{tags, total}, printTags)
return opts.Print(streams.Out(), tags, printTags(total))
}
func printTags(out io.Writer, values interface{}) error {
h := values.(*helper)
func printTags(total int) format.PrettyPrinter {
return func(out io.Writer, values interface{}) error {
tags := values.([]hub.Tag)
tw := tabwriter.New(out, " ")
for _, column := range defaultColumns {
tw.Column(ansi.Header(column.header), len(column.header))
@ -182,7 +183,7 @@ func printTags(out io.Writer, values interface{}) error {
tw.Line()
for _, tag := range h.tags {
for _, tag := range tags {
for _, column := range defaultColumns {
value, width := column.value(tag)
tw.Column(value, width)
@ -193,11 +194,12 @@ func printTags(out io.Writer, values interface{}) error {
return err
}
if len(h.tags) < h.total {
fmt.Fprintln(out, ansi.Info(fmt.Sprintf("%v/%v listed, use --all flag to show all", len(h.tags), h.total)))
if len(tags) < total {
fmt.Fprintln(out, ansi.Info(fmt.Sprintf("%v/%v listed, use --all flag to show all", len(tags), total)))
}
return nil
}
}
const (
@ -253,8 +255,3 @@ func promptCallToAction(out io.Writer, client accountInfo) error {
_, err = fmt.Fprint(out, ansi.Info(callToAction))
return err
}
type helper struct {
tags []hub.Tag
total int
}

Просмотреть файл

@ -65,15 +65,16 @@ func runCreate(streams command.Streams, hubClient *hub.Client, opts createOption
if err != nil {
return err
}
return opts.Print(streams.Out(), &printHelper{hubClient.AuthConfig.Username, token, opts.quiet}, printCreatedToken)
}
func printCreatedToken(out io.Writer, value interface{}) error {
helper := value.(*printHelper)
if helper.quiet {
fmt.Fprintln(out, helper.token.Token)
if opts.quiet {
fmt.Fprintln(streams.Out(), token.Token)
return nil
}
return opts.Print(streams.Out(), token, printCreatedToken(hubClient))
}
func printCreatedToken(hubClient *hub.Client) format.PrettyPrinter {
return func(out io.Writer, value interface{}) error {
helper := value.(*hub.Token)
fmt.Fprintf(out, ansi.Emphasise("Personal Access Token successfully created!")+`
When logging in from your Docker CLI client, use this token as a password.
@ -88,14 +89,9 @@ To use the access token from your Docker CLI client:
`+ansi.Warn(`WARNING: This access token will only be displayed once.
It will not be stored and cannot be retrieved. Please be sure to save it now.
`),
helper.token.Description,
helper.userName,
ansi.Emphasise(helper.token.Token))
helper.Description,
hubClient.AuthConfig.Username,
ansi.Emphasise(helper.Token))
return nil
}
type printHelper struct {
userName string
token *hub.Token
quiet bool
}
}

Просмотреть файл

@ -98,18 +98,19 @@ func runList(streams command.Streams, hubClient *hub.Client, opts listOptions) e
if err != nil {
return err
}
return opts.Print(streams.Out(), &helper{tokens, total}, printTokens)
return opts.Print(streams.Out(), tokens, printTokens(total))
}
func printTokens(out io.Writer, values interface{}) error {
h := values.(*helper)
func printTokens(total int) format.PrettyPrinter {
return func(out io.Writer, values interface{}) error {
tokens := values.([]hub.Token)
tw := tabwriter.New(out, " ")
for _, column := range defaultColumns {
tw.Column(ansi.Header(column.header), len(column.header))
}
tw.Line()
for _, token := range h.tokens {
for _, token := range tokens {
for _, column := range defaultColumns {
value, width := column.value(token)
tw.Column(value, width)
@ -120,13 +121,9 @@ func printTokens(out io.Writer, values interface{}) error {
return err
}
if len(h.tokens) < h.total {
fmt.Fprintln(out, ansi.Info(fmt.Sprintf("%v/%v listed, use --all flag to show all", len(h.tokens), h.total)))
if len(tokens) < total {
fmt.Fprintln(out, ansi.Info(fmt.Sprintf("%v/%v listed, use --all flag to show all", len(tokens), total)))
}
return nil
}
type helper struct {
tokens []hub.Token
total int
}
}