summaryrefslogtreecommitdiff
path: root/cmd/podman/volumes
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2020-11-13 16:46:51 +0100
committerGitHub <noreply@github.com>2020-11-13 16:46:51 +0100
commit2993e97dec9d998d2eca7c5aee918b1429596a85 (patch)
tree9bdb3b5c766d913a8d1980ad017276e1f1a51b7c /cmd/podman/volumes
parent6d9d9fee30b5982858d51a666f0c335ba47323a0 (diff)
parentae3816614de1c2a0c9ab9cd05afebc5b1dda6429 (diff)
downloadpodman-2993e97dec9d998d2eca7c5aee918b1429596a85.tar.gz
podman-2993e97dec9d998d2eca7c5aee918b1429596a85.tar.bz2
podman-2993e97dec9d998d2eca7c5aee918b1429596a85.zip
Merge pull request #6442 from Luap99/podman-autocomplete
Shell completion
Diffstat (limited to 'cmd/podman/volumes')
-rw-r--r--cmd/podman/volumes/create.go25
-rw-r--r--cmd/podman/volumes/inspect.go15
-rw-r--r--cmd/podman/volumes/list.go26
-rw-r--r--cmd/podman/volumes/prune.go12
-rw-r--r--cmd/podman/volumes/rm.go12
5 files changed, 60 insertions, 30 deletions
diff --git a/cmd/podman/volumes/create.go b/cmd/podman/volumes/create.go
index a54530183..8de343a24 100644
--- a/cmd/podman/volumes/create.go
+++ b/cmd/podman/volumes/create.go
@@ -4,6 +4,7 @@ import (
"context"
"fmt"
+ "github.com/containers/common/pkg/completion"
"github.com/containers/podman/v2/cmd/podman/parse"
"github.com/containers/podman/v2/cmd/podman/registry"
"github.com/containers/podman/v2/pkg/domain/entities"
@@ -15,10 +16,11 @@ var (
createDescription = `If using the default driver, "local", the volume will be created on the host in the volumes directory under container storage.`
createCommand = &cobra.Command{
- Use: "create [options] [NAME]",
- Short: "Create a new volume",
- Long: createDescription,
- RunE: create,
+ Use: "create [options] [NAME]",
+ Short: "Create a new volume",
+ Long: createDescription,
+ RunE: create,
+ ValidArgsFunction: completion.AutocompleteNone,
Example: `podman volume create myvol
podman volume create
podman volume create --label foo=bar myvol`,
@@ -40,9 +42,18 @@ func init() {
Parent: volumeCmd,
})
flags := createCommand.Flags()
- flags.StringVar(&createOpts.Driver, "driver", "local", "Specify volume driver name")
- flags.StringSliceVarP(&opts.Label, "label", "l", []string{}, "Set metadata for a volume (default [])")
- flags.StringArrayVarP(&opts.Opts, "opt", "o", []string{}, "Set driver specific options (default [])")
+
+ driverFlagName := "driver"
+ flags.StringVar(&createOpts.Driver, driverFlagName, "local", "Specify volume driver name")
+ _ = createCommand.RegisterFlagCompletionFunc(driverFlagName, completion.AutocompleteNone)
+
+ labelFlagName := "label"
+ flags.StringSliceVarP(&opts.Label, labelFlagName, "l", []string{}, "Set metadata for a volume (default [])")
+ _ = createCommand.RegisterFlagCompletionFunc(labelFlagName, completion.AutocompleteNone)
+
+ optFlagName := "opt"
+ flags.StringArrayVarP(&opts.Opts, optFlagName, "o", []string{}, "Set driver specific options (default [])")
+ _ = createCommand.RegisterFlagCompletionFunc(optFlagName, completion.AutocompleteNone)
}
func create(cmd *cobra.Command, args []string) error {
diff --git a/cmd/podman/volumes/inspect.go b/cmd/podman/volumes/inspect.go
index c6edcf809..b5094224c 100644
--- a/cmd/podman/volumes/inspect.go
+++ b/cmd/podman/volumes/inspect.go
@@ -1,6 +1,7 @@
package volumes
import (
+ "github.com/containers/podman/v2/cmd/podman/common"
"github.com/containers/podman/v2/cmd/podman/inspect"
"github.com/containers/podman/v2/cmd/podman/registry"
"github.com/containers/podman/v2/pkg/domain/entities"
@@ -13,10 +14,11 @@ var (
Use a Go template to change the format from JSON.`
inspectCommand = &cobra.Command{
- Use: "inspect [options] VOLUME [VOLUME...]",
- Short: "Display detailed information on one or more volumes",
- Long: volumeInspectDescription,
- RunE: volumeInspect,
+ Use: "inspect [options] VOLUME [VOLUME...]",
+ Short: "Display detailed information on one or more volumes",
+ Long: volumeInspectDescription,
+ RunE: volumeInspect,
+ ValidArgsFunction: common.AutocompleteVolumes,
Example: `podman volume inspect myvol
podman volume inspect --all
podman volume inspect --format "{{.Driver}} {{.Scope}}" myvol`,
@@ -36,7 +38,10 @@ func init() {
inspectOpts = new(entities.InspectOptions)
flags := inspectCommand.Flags()
flags.BoolVarP(&inspectOpts.All, "all", "a", false, "Inspect all volumes")
- flags.StringVarP(&inspectOpts.Format, "format", "f", "json", "Format volume output using Go template")
+
+ formatFlagName := "format"
+ flags.StringVarP(&inspectOpts.Format, formatFlagName, "f", "json", "Format volume output using Go template")
+ _ = inspectCommand.RegisterFlagCompletionFunc(formatFlagName, common.AutocompleteJSONFormat)
}
func volumeInspect(cmd *cobra.Command, args []string) error {
diff --git a/cmd/podman/volumes/list.go b/cmd/podman/volumes/list.go
index ce0b7997d..5548c9c1b 100644
--- a/cmd/podman/volumes/list.go
+++ b/cmd/podman/volumes/list.go
@@ -8,7 +8,9 @@ import (
"text/tabwriter"
"text/template"
+ "github.com/containers/common/pkg/completion"
"github.com/containers/common/pkg/report"
+ "github.com/containers/podman/v2/cmd/podman/common"
"github.com/containers/podman/v2/cmd/podman/parse"
"github.com/containers/podman/v2/cmd/podman/registry"
"github.com/containers/podman/v2/cmd/podman/validate"
@@ -24,12 +26,13 @@ podman volume ls
List all available volumes. The output of the volumes can be filtered
and the output format can be changed to JSON or a user specified Go template.`
lsCommand = &cobra.Command{
- Use: "ls [options]",
- Aliases: []string{"list"},
- Args: validate.NoArgs,
- Short: "List volumes",
- Long: volumeLsDescription,
- RunE: list,
+ Use: "ls [options]",
+ Aliases: []string{"list"},
+ Args: validate.NoArgs,
+ Short: "List volumes",
+ Long: volumeLsDescription,
+ RunE: list,
+ ValidArgsFunction: completion.AutocompleteNone,
}
)
@@ -50,8 +53,15 @@ func init() {
Parent: volumeCmd,
})
flags := lsCommand.Flags()
- flags.StringSliceVarP(&cliOpts.Filter, "filter", "f", []string{}, "Filter volume output")
- flags.StringVar(&cliOpts.Format, "format", "{{.Driver}}\t{{.Name}}\n", "Format volume output using Go template")
+
+ filterFlagName := "filter"
+ flags.StringSliceVarP(&cliOpts.Filter, filterFlagName, "f", []string{}, "Filter volume output")
+ _ = lsCommand.RegisterFlagCompletionFunc(filterFlagName, completion.AutocompleteNone)
+
+ formatFlagName := "format"
+ flags.StringVar(&cliOpts.Format, formatFlagName, "{{.Driver}}\t{{.Name}}\n", "Format volume output using Go template")
+ _ = lsCommand.RegisterFlagCompletionFunc(formatFlagName, common.AutocompleteJSONFormat)
+
flags.BoolVarP(&cliOpts.Quiet, "quiet", "q", false, "Print volume output in quiet mode")
}
diff --git a/cmd/podman/volumes/prune.go b/cmd/podman/volumes/prune.go
index 79e6f1a54..2f58b668f 100644
--- a/cmd/podman/volumes/prune.go
+++ b/cmd/podman/volumes/prune.go
@@ -7,6 +7,7 @@ import (
"os"
"strings"
+ "github.com/containers/common/pkg/completion"
"github.com/containers/podman/v2/cmd/podman/registry"
"github.com/containers/podman/v2/cmd/podman/utils"
"github.com/containers/podman/v2/cmd/podman/validate"
@@ -21,11 +22,12 @@ var (
The command prompts for confirmation which can be overridden with the --force flag.
Note all data will be destroyed.`
pruneCommand = &cobra.Command{
- Use: "prune [options]",
- Args: validate.NoArgs,
- Short: "Remove all unused volumes",
- Long: volumePruneDescription,
- RunE: prune,
+ Use: "prune [options]",
+ Args: validate.NoArgs,
+ Short: "Remove all unused volumes",
+ Long: volumePruneDescription,
+ RunE: prune,
+ ValidArgsFunction: completion.AutocompleteNone,
}
)
diff --git a/cmd/podman/volumes/rm.go b/cmd/podman/volumes/rm.go
index 4026764ac..49f7b619e 100644
--- a/cmd/podman/volumes/rm.go
+++ b/cmd/podman/volumes/rm.go
@@ -5,6 +5,7 @@ import (
"fmt"
"strings"
+ "github.com/containers/podman/v2/cmd/podman/common"
"github.com/containers/podman/v2/cmd/podman/registry"
"github.com/containers/podman/v2/cmd/podman/utils"
"github.com/containers/podman/v2/libpod/define"
@@ -18,11 +19,12 @@ var (
By default only volumes that are not being used by any containers will be removed. To remove the volumes anyways, use the --force flag.`
rmCommand = &cobra.Command{
- Use: "rm [options] VOLUME [VOLUME...]",
- Aliases: []string{"remove"},
- Short: "Remove one or more volumes",
- Long: volumeRmDescription,
- RunE: rm,
+ Use: "rm [options] VOLUME [VOLUME...]",
+ Aliases: []string{"remove"},
+ Short: "Remove one or more volumes",
+ Long: volumeRmDescription,
+ RunE: rm,
+ ValidArgsFunction: common.AutocompleteVolumes,
Example: `podman volume rm myvol1 myvol2
podman volume rm --all
podman volume rm --force myvol`,