mirror of https://github.com/docker/cli.git
Add completion for `--volume-driver`
Signed-off-by: Harald Albers <github@albersweb.de>
This commit is contained in:
parent
db0ed1e216
commit
4525fe37b4
|
@ -136,6 +136,7 @@ func addCompletions(cmd *cobra.Command, dockerCLI completion.APIClientProvider)
|
||||||
_ = cmd.RegisterFlagCompletionFunc("ulimit", completeUlimit)
|
_ = cmd.RegisterFlagCompletionFunc("ulimit", completeUlimit)
|
||||||
_ = cmd.RegisterFlagCompletionFunc("userns", completion.FromList("host"))
|
_ = cmd.RegisterFlagCompletionFunc("userns", completion.FromList("host"))
|
||||||
_ = cmd.RegisterFlagCompletionFunc("uts", completion.FromList("host"))
|
_ = cmd.RegisterFlagCompletionFunc("uts", completion.FromList("host"))
|
||||||
|
_ = cmd.RegisterFlagCompletionFunc("volume-driver", completeVolumeDriver(dockerCLI))
|
||||||
_ = cmd.RegisterFlagCompletionFunc("volumes-from", completion.ContainerNames(dockerCLI, true))
|
_ = cmd.RegisterFlagCompletionFunc("volumes-from", completion.ContainerNames(dockerCLI, true))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -272,6 +273,19 @@ func completeUlimit(_ *cobra.Command, _ []string, _ string) ([]string, cobra.She
|
||||||
return postfixWith("=", limits), cobra.ShellCompDirectiveNoSpace
|
return postfixWith("=", limits), cobra.ShellCompDirectiveNoSpace
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// completeVolumeDriver contacts the API to get the built-in and installed volume drivers.
|
||||||
|
func completeVolumeDriver(dockerCLI completion.APIClientProvider) completion.ValidArgsFn {
|
||||||
|
return func(cmd *cobra.Command, _ []string, _ string) ([]string, cobra.ShellCompDirective) {
|
||||||
|
info, err := dockerCLI.Client().Info(cmd.Context())
|
||||||
|
if err != nil {
|
||||||
|
// fallback: the built-in drivers
|
||||||
|
return []string{"local"}, cobra.ShellCompDirectiveNoFileComp
|
||||||
|
}
|
||||||
|
drivers := info.Plugins.Volume
|
||||||
|
return drivers, cobra.ShellCompDirectiveNoFileComp
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// containerNames contacts the API to get names and optionally IDs of containers.
|
// containerNames contacts the API to get names and optionally IDs of containers.
|
||||||
// In case of an error, an empty list is returned.
|
// In case of an error, an empty list is returned.
|
||||||
func containerNames(dockerCLI completion.APIClientProvider, cmd *cobra.Command, args []string, toComplete string) []string {
|
func containerNames(dockerCLI completion.APIClientProvider, cmd *cobra.Command, args []string, toComplete string) []string {
|
||||||
|
|
Loading…
Reference in New Issue