diff options
author | Paul Holzinger <paul.holzinger@web.de> | 2021-03-31 14:01:18 +0200 |
---|---|---|
committer | Paul Holzinger <paul.holzinger@web.de> | 2021-03-31 14:29:07 +0200 |
commit | 009322c57a049a98b6b8a7a1ad42d9e0f252472c (patch) | |
tree | 8d53e989c689aa81265d71451a395e33fb6f653f /cmd/podman/machine/machine.go | |
parent | dbb7009e5586d41a5b64806ae5fb664dc77c7bdb (diff) | |
download | podman-009322c57a049a98b6b8a7a1ad42d9e0f252472c.tar.gz podman-009322c57a049a98b6b8a7a1ad42d9e0f252472c.tar.bz2 podman-009322c57a049a98b6b8a7a1ad42d9e0f252472c.zip |
podman machine shell completion
Add shell completion for machine names.
[NO TESTS NEEDED]
I would like to add one to the shell completion test however
using podman machine init is to expensive.
Signed-off-by: Paul Holzinger <paul.holzinger@web.de>
Diffstat (limited to 'cmd/podman/machine/machine.go')
-rw-r--r-- | cmd/podman/machine/machine.go | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/cmd/podman/machine/machine.go b/cmd/podman/machine/machine.go index 9a2377d12..d8cdf5568 100644 --- a/cmd/podman/machine/machine.go +++ b/cmd/podman/machine/machine.go @@ -3,9 +3,13 @@ package machine import ( + "strings" + "github.com/containers/podman/v3/cmd/podman/registry" "github.com/containers/podman/v3/cmd/podman/validate" "github.com/containers/podman/v3/pkg/domain/entities" + "github.com/containers/podman/v3/pkg/machine" + "github.com/containers/podman/v3/pkg/machine/qemu" "github.com/spf13/cobra" ) @@ -30,3 +34,34 @@ func init() { Command: machineCmd, }) } + +// autocompleteMachineSSH - Autocomplete machine ssh command. +func autocompleteMachineSSH(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { + if len(args) == 0 { + return getMachines(toComplete) + } + return nil, cobra.ShellCompDirectiveDefault +} + +// autocompleteMachine - Autocomplete machines. +func autocompleteMachine(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { + if len(args) == 0 { + return getMachines(toComplete) + } + return nil, cobra.ShellCompDirectiveNoFileComp +} + +func getMachines(toComplete string) ([]string, cobra.ShellCompDirective) { + suggestions := []string{} + machines, err := qemu.List(machine.ListOptions{}) + if err != nil { + cobra.CompErrorln(err.Error()) + return nil, cobra.ShellCompDirectiveNoFileComp + } + for _, m := range machines { + if strings.HasPrefix(m.Name, toComplete) { + suggestions = append(suggestions, m.Name) + } + } + return suggestions, cobra.ShellCompDirectiveNoFileComp +} |