diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2020-11-24 11:24:14 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-24 11:24:14 +0100 |
commit | 5267e73db0814a6af9704aae62d600b08df80774 (patch) | |
tree | 1f521c9b5844467db383c143ac14bca5696f670a /cmd | |
parent | 4fe7c3f7bc8a1d20a23e87783b6a17b887c782e1 (diff) | |
parent | f38e18959974901eec4b69bc904de910a4459da9 (diff) | |
download | podman-5267e73db0814a6af9704aae62d600b08df80774.tar.gz podman-5267e73db0814a6af9704aae62d600b08df80774.tar.bz2 podman-5267e73db0814a6af9704aae62d600b08df80774.zip |
Merge pull request #8461 from Luap99/top-shell-completion
Implement shell completion for podman top
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/podman/common/completion.go | 20 | ||||
-rw-r--r-- | cmd/podman/containers/top.go | 2 | ||||
-rw-r--r-- | cmd/podman/pods/top.go | 2 |
3 files changed, 22 insertions, 2 deletions
diff --git a/cmd/podman/common/completion.go b/cmd/podman/common/completion.go index 6723cbf62..9856e46ef 100644 --- a/cmd/podman/common/completion.go +++ b/cmd/podman/common/completion.go @@ -14,6 +14,7 @@ import ( "github.com/containers/podman/v2/pkg/registries" "github.com/containers/podman/v2/pkg/rootless" systemdGen "github.com/containers/podman/v2/pkg/systemd/generate" + "github.com/containers/podman/v2/pkg/util" "github.com/spf13/cobra" ) @@ -476,6 +477,25 @@ func AutocompleteNetworkConnectCmd(cmd *cobra.Command, args []string, toComplete return nil, cobra.ShellCompDirectiveNoFileComp } +// AutocompleteTopCmd - Autocomplete podman top/pod top command args. +func AutocompleteTopCmd(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { + latest := cmd.Flags().Lookup("latest") + // only complete containers/pods as first arg if latest is not set + if len(args) == 0 && (latest == nil || !latest.Changed) { + if cmd.Parent().Name() == "pod" { + // need to complete pods since we are using pod top + return getPods(cmd, toComplete, completeDefault) + } + return getContainers(cmd, toComplete, completeDefault) + } + descriptors, err := util.GetContainerPidInformationDescriptors() + if err != nil { + cobra.CompErrorln(err.Error()) + return nil, cobra.ShellCompDirectiveNoFileComp + } + return descriptors, cobra.ShellCompDirectiveNoFileComp +} + // AutocompleteSystemConnections - Autocomplete system connections. func AutocompleteSystemConnections(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { if !validCurrentCmdLine(cmd, args, toComplete) { diff --git a/cmd/podman/containers/top.go b/cmd/podman/containers/top.go index f00b1dce1..e691f527a 100644 --- a/cmd/podman/containers/top.go +++ b/cmd/podman/containers/top.go @@ -30,7 +30,7 @@ var ( Long: topDescription, RunE: top, Args: cobra.ArbitraryArgs, - ValidArgsFunction: common.AutocompleteContainersRunning, + ValidArgsFunction: common.AutocompleteTopCmd, Example: `podman top ctrID podman top --latest podman top ctrID pid seccomp args %C diff --git a/cmd/podman/pods/top.go b/cmd/podman/pods/top.go index 45ef1e7c2..829882080 100644 --- a/cmd/podman/pods/top.go +++ b/cmd/podman/pods/top.go @@ -29,7 +29,7 @@ var ( Long: topDescription, RunE: top, Args: cobra.ArbitraryArgs, - ValidArgsFunction: common.AutocompletePodsRunning, + ValidArgsFunction: common.AutocompleteTopCmd, Example: `podman pod top podID podman pod top --latest podman pod top podID pid seccomp args %C |