summaryrefslogtreecommitdiff
path: root/cmd/podmanV2/system/info.go
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2020-04-07 19:00:57 +0200
committerGitHub <noreply@github.com>2020-04-07 19:00:57 +0200
commit8289805f5dce862219c0b124547a898766a0b55c (patch)
treece711014576d651d4ca5fa64119a7ed5902ea5dc /cmd/podmanV2/system/info.go
parent44f910c28cae178eab9ad439587355fa4927dab7 (diff)
parent013ecca8959f94cd97ee694676eeda6439ad38b7 (diff)
downloadpodman-8289805f5dce862219c0b124547a898766a0b55c.tar.gz
podman-8289805f5dce862219c0b124547a898766a0b55c.tar.bz2
podman-8289805f5dce862219c0b124547a898766a0b55c.zip
Merge pull request #5738 from baude/v2info
podmanv2 info
Diffstat (limited to 'cmd/podmanV2/system/info.go')
-rw-r--r--cmd/podmanV2/system/info.go74
1 files changed, 74 insertions, 0 deletions
diff --git a/cmd/podmanV2/system/info.go b/cmd/podmanV2/system/info.go
new file mode 100644
index 000000000..69b2871b7
--- /dev/null
+++ b/cmd/podmanV2/system/info.go
@@ -0,0 +1,74 @@
+package system
+
+import (
+ "encoding/json"
+ "fmt"
+ "os"
+ "text/template"
+
+ "github.com/containers/libpod/cmd/podmanV2/registry"
+ "github.com/containers/libpod/pkg/domain/entities"
+ "github.com/spf13/cobra"
+ "gopkg.in/yaml.v2"
+)
+
+var (
+ infoDescription = `Display information pertaining to the host, current storage stats, and build of podman.
+
+ Useful for the user and when reporting issues.
+`
+ infoCommand = &cobra.Command{
+ Use: "info",
+ Args: cobra.NoArgs,
+ Long: infoDescription,
+ Short: "Display podman system information",
+ PreRunE: preRunE,
+ RunE: info,
+ Example: `podman info`,
+ }
+)
+
+var (
+ inFormat string
+ debug bool
+)
+
+func init() {
+ registry.Commands = append(registry.Commands, registry.CliCommand{
+ Mode: []entities.EngineMode{entities.ABIMode, entities.TunnelMode},
+ Command: infoCommand,
+ })
+ flags := infoCommand.Flags()
+ flags.BoolVarP(&debug, "debug", "D", false, "Display additional debug information")
+ flags.StringVarP(&inFormat, "format", "f", "", "Change the output format to JSON or a Go template")
+}
+
+func info(cmd *cobra.Command, args []string) error {
+ info, err := registry.ContainerEngine().Info(registry.GetContext())
+ if err != nil {
+ return err
+ }
+
+ if inFormat == "json" {
+ b, err := json.MarshalIndent(info, "", " ")
+ if err != nil {
+ return err
+ }
+ fmt.Println(string(b))
+ return nil
+ }
+ if !cmd.Flag("format").Changed {
+ b, err := yaml.Marshal(info)
+ if err != nil {
+ return err
+ }
+ fmt.Println(string(b))
+ return nil
+ }
+ tmpl, err := template.New("info").Parse(inFormat)
+ if err != nil {
+ return err
+ }
+ err = tmpl.Execute(os.Stdout, info)
+ return err
+}