diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2021-06-23 15:53:31 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-23 15:53:31 -0400 |
commit | e1a7a0efbeec4950815a29372a1c932bbf1bc9fb (patch) | |
tree | 1d6a2c65fbd14b40689a7a6b6cda0bbc33381446 /cmd/podman | |
parent | d95ff1a687c12e794e808a8a535e2ab5a2becd03 (diff) | |
parent | 1f388ede6f1425ecc6e2a6fddba1d811bc41e2c0 (diff) | |
download | podman-e1a7a0efbeec4950815a29372a1c932bbf1bc9fb.tar.gz podman-e1a7a0efbeec4950815a29372a1c932bbf1bc9fb.tar.bz2 podman-e1a7a0efbeec4950815a29372a1c932bbf1bc9fb.zip |
Merge pull request #10747 from jwhonce/wip/report
Add --format to connection list
Diffstat (limited to 'cmd/podman')
-rw-r--r-- | cmd/podman/system/connection/list.go | 35 |
1 files changed, 29 insertions, 6 deletions
diff --git a/cmd/podman/system/connection/list.go b/cmd/podman/system/connection/list.go index b0b15b57d..2f74215c1 100644 --- a/cmd/podman/system/connection/list.go +++ b/cmd/podman/system/connection/list.go @@ -1,11 +1,13 @@ package connection import ( + "fmt" "os" "github.com/containers/common/pkg/completion" "github.com/containers/common/pkg/config" "github.com/containers/common/pkg/report" + "github.com/containers/podman/v3/cmd/podman/common" "github.com/containers/podman/v3/cmd/podman/registry" "github.com/containers/podman/v3/cmd/podman/system" "github.com/containers/podman/v3/cmd/podman/validate" @@ -14,13 +16,14 @@ import ( var ( listCmd = &cobra.Command{ - Use: "list", + Use: "list [options]", Aliases: []string{"ls"}, Args: validate.NoArgs, Short: "List destination for the Podman service(s)", Long: `List destination information for the Podman service(s) in podman configuration`, Example: `podman system connection list - podman system connection ls`, + podman system connection ls + podman system connection ls --format=json`, ValidArgsFunction: completion.AutocompleteNone, RunE: list, TraverseChildren: false, @@ -32,6 +35,9 @@ func init() { Command: listCmd, Parent: system.ConnectionCmd, }) + + listCmd.Flags().String("format", "", "Custom Go template for printing connections") + _ = listCmd.RegisterFlagCompletionFunc("format", common.AutocompleteFormat(namedDestination{})) } type namedDestination struct { @@ -39,7 +45,7 @@ type namedDestination struct { config.Destination } -func list(_ *cobra.Command, _ []string) error { +func list(cmd *cobra.Command, _ []string) error { cfg, err := config.ReadCustomConfig() if err != nil { return err @@ -71,8 +77,22 @@ func list(_ *cobra.Command, _ []string) error { rows = append(rows, r) } - // TODO: Allow user to override format - format := "{{range . }}{{.Name}}\t{{.Identity}}\t{{.URI}}\n{{end -}}" + format := "{{.Name}}\t{{.Identity}}\t{{.URI}}\n" + switch { + case report.IsJSON(cmd.Flag("format").Value.String()): + buf, err := registry.JSONLibrary().MarshalIndent(rows, "", " ") + if err == nil { + fmt.Println(string(buf)) + } + return err + default: + if cmd.Flag("format").Changed { + format = cmd.Flag("format").Value.String() + format = report.NormalizeFormat(format) + } + } + format = report.EnforceRange(format) + tmpl, err := report.NewTemplate("list").Parse(format) if err != nil { return err @@ -84,6 +104,9 @@ func list(_ *cobra.Command, _ []string) error { } defer w.Flush() - _ = tmpl.Execute(w, hdrs) + isTable := report.HasTable(cmd.Flag("format").Value.String()) + if !cmd.Flag("format").Changed || isTable { + _ = tmpl.Execute(w, hdrs) + } return tmpl.Execute(w, rows) } |