diff options
author | Jhon Honce <jhonce@redhat.com> | 2021-06-21 14:52:41 -0700 |
---|---|---|
committer | Jhon Honce <jhonce@redhat.com> | 2021-06-22 11:07:12 -0700 |
commit | 1f388ede6f1425ecc6e2a6fddba1d811bc41e2c0 (patch) | |
tree | d1dfa4e33924f5ed3ef37660174868692296a0a8 /cmd/podman/system/connection | |
parent | be15e69a6189685ac1afba06cb67013e960065ed (diff) | |
download | podman-1f388ede6f1425ecc6e2a6fddba1d811bc41e2c0.tar.gz podman-1f388ede6f1425ecc6e2a6fddba1d811bc41e2c0.tar.bz2 podman-1f388ede6f1425ecc6e2a6fddba1d811bc41e2c0.zip |
Add --format to connection list
Add support for the --format option to podman system connection list.
Signed-off-by: Jhon Honce <jhonce@redhat.com>
Diffstat (limited to 'cmd/podman/system/connection')
-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) } |