Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
oh-my-zsh
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
github
oh-my-zsh
Commits
41eedd37
Commit
41eedd37
authored
7 years ago
by
Antonis Kalipetis
Committed by
Robby Russell
7 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update Docker completion plugin (#6410)
parent
dcb8101f
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
374 additions
and
102 deletions
+374
-102
README.md
plugins/docker/README.md
+1
-1
_docker
plugins/docker/_docker
+373
-101
No files found.
plugins/docker/README.md
View file @
41eedd37
## Docker autocomplete plugin
A copy of the completion script from the
[
docker
](
https://github.com/docker/docker/tree/master/contrib/completion/zsh
)
[
docker
/cli
](
https://github.com/docker/cli/blob/master/contrib/completion/zsh/_docker
)
git repo.
This diff is collapsed.
Click to expand it.
plugins/docker/_docker
View file @
41eedd37
...
...
@@ -78,7 +78,7 @@ __docker_get_containers() {
s
=
"
${${
line
[
${
begin
[CONTAINER ID]
}
,
${
end
[CONTAINER ID]
}
]%% ##
}
[0,12]
}
"
s
=
"
$s
:
${
(l
:15::
:::
)
${${
line
[
${
begin
[CREATED]
}
,
${
end
[CREATED]
}
]/ ago/
}
%% ##
}}
"
s
=
"
$s
,
${${${
line
[
${
begin
[IMAGE]
}
,
${
end
[IMAGE]
}
]
}
/
:/
\\
:
}
%% ##
}
"
if
[[
${
line
[
${
begin
[STATUS]
}
,
${
end
[STATUS]
}
]
}
=
Exit
*
]]
;
then
if
[[
${
line
[
${
begin
[STATUS]
}
,
${
end
[STATUS]
}
]
}
=
(
Exit
*
|Created
*
)
]]
;
then
stopped
=(
$stopped
$s
)
else
running
=(
$running
$s
)
...
...
@@ -100,7 +100,7 @@ __docker_get_containers() {
((
$#s
!=
0
))
||
continue
s
=
"
$s
:
${
(l
:15::
:::
)
${${
line
[
${
begin
[CREATED]
}
,
${
end
[CREATED]
}
]/ ago/
}
%% ##
}}
"
s
=
"
$s
,
${${${
line
[
${
begin
[IMAGE]
}
,
${
end
[IMAGE]
}
]
}
/
:/
\\
:
}
%% ##
}
"
if
[[
${
line
[
${
begin
[STATUS]
}
,
${
end
[STATUS]
}
]
}
=
Exit
*
]]
;
then
if
[[
${
line
[
${
begin
[STATUS]
}
,
${
end
[STATUS]
}
]
}
=
(
Exit
*
|Created
*
)
]]
;
then
stopped
=(
$stopped
$s
)
else
running
=(
$running
$s
)
...
...
@@ -221,17 +221,19 @@ __docker_get_log_options() {
integer
ret
=
1
local
log_driver
=
${
opt_args
[--log-driver]
:-
"all"
}
local
-a
awslogs_options fluentd_options gelf_options journald_options json_file_options logentries_options syslog_options splunk_options
awslogs_options
=(
"awslogs-region"
"awslogs-group"
"awslogs-stream"
)
fluentd_options
=(
"env"
"fluentd-address"
"fluentd-async-connect"
"fluentd-buffer-limit"
"fluentd-retry-wait"
"fluentd-max-retries"
"labels"
"tag"
)
gcplogs_options
=(
"env"
"gcp-log-cmd"
"gcp-project"
"labels"
)
gelf_options
=(
"env"
"gelf-address"
"gelf-compression-level"
"gelf-compression-type"
"labels"
"tag"
)
journald_options
=(
"env"
"labels"
"tag"
)
json_file_options
=(
"env"
"labels"
"max-file"
"max-size"
)
logentries_options
=(
"logentries-token"
)
syslog_options
=(
"env"
"labels"
"syslog-address"
"syslog-facility"
"syslog-format"
"syslog-tls-ca-cert"
"syslog-tls-cert"
"syslog-tls-key"
"syslog-tls-skip-verify"
"tag"
)
splunk_options
=(
"env"
"labels"
"splunk-caname"
"splunk-capath"
"splunk-format"
"splunk-gzip"
"splunk-gzip-level"
"splunk-index"
"splunk-insecureskipverify"
"splunk-source"
"splunk-sourcetype"
"splunk-token"
"splunk-url"
"splunk-verify-connection"
"tag"
)
local
-a
common_options common_options2 awslogs_options fluentd_options gelf_options journald_options json_file_options logentries_options syslog_options splunk_options
common_options
=(
"max-buffer-size"
"mode"
)
common_options2
=(
"env"
"env-regex"
"labels"
)
awslogs_options
=(
$common_options
"awslogs-create-group"
"awslogs-datetime-format"
"awslogs-group"
"awslogs-multiline-pattern"
"awslogs-region"
"awslogs-stream"
"tag"
)
fluentd_options
=(
$common_options
$common_options2
"fluentd-address"
"fluentd-async-connect"
"fluentd-buffer-limit"
"fluentd-retry-wait"
"fluentd-max-retries"
"tag"
)
gcplogs_options
=(
$common_options
$common_options2
"gcp-log-cmd"
"gcp-meta-id"
"gcp-meta-name"
"gcp-meta-zone"
"gcp-project"
)
gelf_options
=(
$common_options
$common_options2
"gelf-address"
"gelf-compression-level"
"gelf-compression-type"
"tag"
)
journald_options
=(
$common_options
$common_options2
"tag"
)
json_file_options
=(
$common_options
$common_options2
"max-file"
"max-size"
)
logentries_options
=(
$common_options
$common_options2
"logentries-token"
"tag"
)
syslog_options
=(
$common_options
$common_options2
"syslog-address"
"syslog-facility"
"syslog-format"
"syslog-tls-ca-cert"
"syslog-tls-cert"
"syslog-tls-key"
"syslog-tls-skip-verify"
"tag"
)
splunk_options
=(
$common_options
$common_options2
"splunk-caname"
"splunk-capath"
"splunk-format"
"splunk-gzip"
"splunk-gzip-level"
"splunk-index"
"splunk-insecureskipverify"
"splunk-source"
"splunk-sourcetype"
"splunk-token"
"splunk-url"
"splunk-verify-connection"
"tag"
)
[[
$log_driver
=
(
awslogs|all
)
]]
&&
_describe
-t
awslogs-options
"awslogs options"
awslogs_options
"
$@
"
&&
ret
=
0
[[
$log_driver
=
(
fluentd|all
)
]]
&&
_describe
-t
fluentd-options
"fluentd options"
fluentd_options
"
$@
"
&&
ret
=
0
...
...
@@ -261,8 +263,12 @@ __docker_complete_log_options() {
if
compset
-P
'*='
;
then
case
"
${${
words
[-1]%=*
}
#*=
}
"
in
(
syslog-format
)
syslog_format_opts
=(
'rfc3164'
'rfc5424'
'rfc5424micro'
)
_describe
-t
syslog-format-opts
"Syslog format Options"
syslog_format_opts
&&
ret
=
0
local
opts
=(
'rfc3164'
'rfc5424'
'rfc5424micro'
)
_describe
-t
syslog-format-opts
"syslog format options"
opts
&&
ret
=
0
;;
(
mode
)
local
opts
=(
'blocking'
'non-blocking'
)
_describe
-t
mode-opts
"mode options"
opts
&&
ret
=
0
;;
*
)
_message
'value'
&&
ret
=
0
...
...
@@ -362,7 +368,7 @@ __docker_complete_ps_filters() {
;;
esac
else
opts
=(
'ancestor'
'before'
'exited'
'
health'
'id'
'label'
'name'
'network
'
'since'
'status'
'volume'
)
opts
=(
'ancestor'
'before'
'exited'
'
expose'
'health'
'id'
'label'
'name'
'network'
'publish
'
'since'
'status'
'volume'
)
_describe
-t
filter-opts
"Filter Options"
opts
-qS
"="
&&
ret
=
0
fi
...
...
@@ -474,6 +480,77 @@ __docker_complete_events_filter() {
return
ret
}
__docker_complete_prune_filters
()
{
[[
$PREFIX
=
-
*
]]
&&
return
1
integer
ret
=
1
declare
-a
opts
opts
=(
'until'
)
if
compset
-P
'*='
;
then
case
"
${${
words
[-1]%=*
}
#*=
}
"
in
*
)
_message
'value'
&&
ret
=
0
;;
esac
else
_describe
-t
filter-opts
"filter options"
opts
-qS
"="
&&
ret
=
0
fi
return
ret
}
# BO checkpoint
__docker_checkpoint_commands
()
{
local
-a
_docker_checkpoint_subcommands
_docker_checkpoint_subcommands
=(
"create:Create a checkpoint from a running container"
"ls:List checkpoints for a container"
"rm:Remove a checkpoint"
)
_describe
-t
docker-checkpoint-commands
"docker checkpoint command"
_docker_checkpoint_subcommands
}
__docker_checkpoint_subcommand
()
{
local
-a
_command_args opts_help
local
expl
help
=
"--help"
integer
ret
=
1
opts_help
=(
"(: -)--help[Print usage]"
)
case
"
$words
[1]"
in
(
create
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
)--checkpoint-dir=[Use a custom checkpoint storage directory]:dir:_directories"
\
"(
$help
)--leave-running[Leave the container running after checkpoint]"
\
"(
$help
-)1:container:__docker_complete_running_containers"
\
"(
$help
-)2:checkpoint: "
&&
ret
=
0
;;
(
ls
|
list
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
)--checkpoint-dir=[Use a custom checkpoint storage directory]:dir:_directories"
\
"(
$help
-)1:container:__docker_complete_containers"
&&
ret
=
0
;;
(
rm
|
remove
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
)--checkpoint-dir=[Use a custom checkpoint storage directory]:dir:_directories"
\
"(
$help
-)1:container:__docker_complete_containers"
\
"(
$help
-)2:checkpoint: "
&&
ret
=
0
;;
(
help
)
_arguments
$(
__docker_arguments
)
":subcommand:__docker_checkpoint_commands"
&&
ret
=
0
;;
esac
return
ret
}
# EO checkpoint
# BO container
__docker_container_commands
()
{
...
...
@@ -526,6 +603,7 @@ __docker_container_subcommand() {
"(
$help
)--cidfile=[Write the container ID to the file]:CID file:_files"
"(
$help
)--cpus=[Number of CPUs (default 0.000)]:cpus: "
"(
$help
)*--device=[Add a host device to the container]:device:_files"
"(
$help
)*--device-cgroup-rule=[Add a rule to the cgroup allowed devices list]:device:cgroup: "
"(
$help
)*--device-read-bps=[Limit the read rate (bytes per second) from a device]:device:IO rate: "
"(
$help
)*--device-read-iops=[Limit the read rate (IO per second) from a device]:device:IO rate: "
"(
$help
)*--device-write-bps=[Limit the write rate (bytes per second) to a device]:device:IO rate: "
...
...
@@ -541,16 +619,18 @@ __docker_container_subcommand() {
"(
$help
)*--group=[Set one or more supplementary user groups for the container]:group:_groups"
"(
$help
-h --hostname)"
{
-h
=
,--hostname
=}
"[Container host name]:hostname:_hosts"
"(
$help
-i --interactive)"
{
-i
,--interactive
}
"[Keep stdin open even if not attached]"
"(
$help
)--ip=[Container IPv4 address]:IPv4: "
"(
$help
)--ip6=[Container IPv6 address]:IPv6: "
"(
$help
)--init[Run an init inside the container that forwards signals and reaps processes]"
"(
$help
)--ip=[IPv4 address]:IPv4: "
"(
$help
)--ip6=[IPv6 address]:IPv6: "
"(
$help
)--ipc=[IPC namespace to use]:IPC namespace: "
"(
$help
)--isolation=[Container isolation technology]:isolation:(default hyperv process)"
"(
$help
)*--link=[Add link to another container]:link:->link"
"(
$help
)*--link-local-ip=[
Add a link-local address for the container
]:IPv4/IPv6: "
"(
$help
)*--link-local-ip=[
Container IPv4/IPv6 link-local addresses
]:IPv4/IPv6: "
"(
$help
)*"
{
-l
=
,--label
=}
"[Container metadata]:label: "
"(
$help
)--log-driver=[Default driver for container logs]:logging driver:__docker_complete_log_drivers"
"(
$help
)*--log-opt=[Log driver specific options]:log driver options:__docker_complete_log_options"
"(
$help
)--mac-address=[Container MAC address]:MAC address: "
"(
$help
)*--mount=[Attach a filesystem mount to the container]:mount: "
"(
$help
)--name=[Container name]:name: "
"(
$help
)--network=[Connect a container to a network]:network mode:(bridge none container host)"
"(
$help
)*--network-alias=[Add network-scoped alias for the container]:alias: "
...
...
@@ -564,6 +644,7 @@ __docker_container_subcommand() {
"(
$help
)--read-only[Mount the container's root filesystem as read only]"
"(
$help
)*--security-opt=[Security options]:security option: "
"(
$help
)*--shm-size=[Size of '/dev/shm' (format is '<number><unit>')]:shm size: "
"(
$help
)--stop-signal=[Signal to kill a container]:signal:_signals"
"(
$help
)--stop-timeout=[Timeout (in seconds) to stop a container]:time: "
"(
$help
)*--sysctl=-[sysctl options]:sysctl: "
"(
$help
-t --tty)"
{
-t
,--tty
}
"[Allocate a pseudo-tty]"
...
...
@@ -731,6 +812,7 @@ __docker_container_subcommand() {
(
prune
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
)*--filter=[Filter values]:filter:__docker_complete_prune_filters"
\
"(
$help
-f --force)"
{
-f
,--force
}
"[Do not prompt for confirmation]"
&&
ret
=
0
;;
(
rename
)
...
...
@@ -779,7 +861,6 @@ __docker_container_subcommand() {
"(
$help
)--rm[Remove intermediate containers when it exits]"
\
"(
$help
)--runtime=[Name of the runtime to be used for that container]:runtime:__docker_complete_runtimes"
\
"(
$help
)--sig-proxy[Proxy all received signals to the process (non-TTY mode only)]"
\
"(
$help
)--stop-signal=[Signal to kill a container]:signal:_signals"
\
"(
$help
)--storage-opt=[Storage driver options for the container]:storage options:->storage-opt"
\
"(
$help
-): :__docker_complete_images"
\
"(
$help
-):command: _command_names -e"
\
...
...
@@ -816,6 +897,7 @@ __docker_container_subcommand() {
"(
$help
-a --all)"
{
-a
,--all
}
"[Show all containers (default shows just running)]"
\
"(
$help
)--format=[Pretty-print images using a Go template]:template: "
\
"(
$help
)--no-stream[Disable streaming stats and only pull the first result]"
\
"(
$help
)--no-trunc[Do not truncate output]"
\
"(
$help
-)*:containers:__docker_complete_running_containers"
&&
ret
=
0
;;
(
stop
)
...
...
@@ -899,6 +981,7 @@ __docker_image_subcommand() {
(
build
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
)*--add-host=[Add a custom host-to-IP mapping]:host
\:
ip mapping: "
\
"(
$help
)*--build-arg=[Build-time variables]:<varname>=<value>: "
\
"(
$help
)*--cache-from=[Images to consider as cache sources]: :__docker_complete_repositories_with_tags"
\
"(
$help
-c --cpu-shares)"
{
-c
=
,--cpu-shares
=}
"[CPU shares (relative weight)]:CPU shares:(0 10 100 200 500 800 1000)"
\
...
...
@@ -923,6 +1006,7 @@ __docker_image_subcommand() {
"(
$help
-q --quiet)"
{
-q
,--quiet
}
"[Suppress verbose build output]"
\
"(
$help
)--rm[Remove intermediate containers after a successful build]"
\
"(
$help
)*--shm-size=[Size of '/dev/shm' (format is '<number><unit>')]:shm size: "
\
"(
$help
)--squash[Squash newly built layers into a single new layer]"
\
"(
$help
-t --tag)*"
{
-t
=
,--tag
=}
"[Repository, name and tag for the image]: :__docker_complete_repositories_with_tags"
\
"(
$help
)*--ulimit=[ulimit options]:ulimit: "
\
"(
$help
)--userns=[Container user namespace]:user namespace:(host)"
\
...
...
@@ -962,21 +1046,17 @@ __docker_image_subcommand() {
$opts_help
\
"(
$help
-a --all)"
{
-a
,--all
}
"[Show all images]"
\
"(
$help
)--digests[Show digests]"
\
"(
$help
)*"
{
-f
=
,--filter
=}
"[Filter values]:filter:
->filter-option
s"
\
"(
$help
)*"
{
-f
=
,--filter
=}
"[Filter values]:filter:
__docker_complete_images_filter
s"
\
"(
$help
)--format=[Pretty-print images using a Go template]:template: "
\
"(
$help
)--no-trunc[Do not truncate output]"
\
"(
$help
-q --quiet)"
{
-q
,--quiet
}
"[Only show numeric IDs]"
\
"(
$help
-): :__docker_complete_repositories"
&&
ret
=
0
case
$state
in
(
filter-options
)
__docker_complete_images_filters
&&
ret
=
0
;;
esac
;;
(
prune
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
-a --all)"
{
-a
,--all
}
"[Remove all unused images, not just dangling ones]"
\
"(
$help
)*--filter=[Filter values]:filter:__docker_complete_prune_filters"
\
"(
$help
-f --force)"
{
-f
,--force
}
"[Do not prompt for confirmation]"
&&
ret
=
0
;;
(
pull
)
...
...
@@ -1038,16 +1118,20 @@ __docker_network_complete_ls_filters() {
(
name
)
__docker_complete_networks_names
&&
ret
=
0
;;
(
scope
)
opts
=(
'global'
'local'
'swarm'
)
_describe
-t
scope-filter-opts
"Scope filter options"
opts
&&
ret
=
0
;;
(
type
)
type_
opts
=(
'builtin'
'custom'
)
_describe
-t
type-filter-opts
"Type
Filter Options"
type_
opts
&&
ret
=
0
opts
=(
'builtin'
'custom'
)
_describe
-t
type-filter-opts
"Type
filter options"
opts
&&
ret
=
0
;;
*
)
_message
'value'
&&
ret
=
0
;;
esac
else
opts
=(
'driver'
'id'
'label'
'name'
'type'
)
opts
=(
'driver'
'id'
'label'
'name'
'
scope'
'
type'
)
_describe
-t
filter-opts
"Filter Options"
opts
-qS
"="
&&
ret
=
0
fi
...
...
@@ -1142,8 +1226,8 @@ __docker_network_subcommand() {
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
)*--alias=[Add network-scoped alias for the container]:alias: "
\
"(
$help
)--ip=[
Container
IPv4 address]:IPv4: "
\
"(
$help
)--ip6=[
Container
IPv6 address]:IPv6: "
\
"(
$help
)--ip=[IPv4 address]:IPv4: "
\
"(
$help
)--ip6=[IPv6 address]:IPv6: "
\
"(
$help
)*--link=[Add a link to another container]:link:->link"
\
"(
$help
)*--link-local-ip=[Add a link-local address for the container]:IPv4/IPv6: "
\
"(
$help
-)1:network:__docker_complete_networks"
\
...
...
@@ -1186,24 +1270,21 @@ __docker_network_subcommand() {
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
-f --format)"
{
-f
=
,--format
=}
"[Format the output using the given go template]:template: "
\
"(
$help
)--verbose[Show detailed information]"
\
"(
$help
-)*:network:__docker_complete_networks"
&&
ret
=
0
;;
(
ls
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
)--no-trunc[Do not truncate the output]"
\
"(
$help
)*"
{
-f
=
,--filter
=}
"[Provide filter values]:filter:
->filter-option
s"
\
"(
$help
)*"
{
-f
=
,--filter
=}
"[Provide filter values]:filter:
__docker_network_complete_ls_filter
s"
\
"(
$help
)--format=[Pretty-print networks using a Go template]:template: "
\
"(
$help
-q --quiet)"
{
-q
,--quiet
}
"[Only display numeric IDs]"
&&
ret
=
0
case
$state
in
(
filter-options
)
__docker_network_complete_ls_filters
&&
ret
=
0
;;
esac
;;
(
prune
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
)*--filter=[Filter values]:filter:__docker_complete_prune_filters"
\
"(
$help
-f --force)"
{
-f
,--force
}
"[Do not prompt for confirmation]"
&&
ret
=
0
;;
(
rm
)
...
...
@@ -1262,7 +1343,7 @@ __docker_node_complete_ps_filters() {
if
compset
-P
'*='
;
then
case
"
${${
words
[-1]%=*
}
#*=
}
"
in
(
desired-state
)
state_opts
=(
'accepted'
'running'
)
state_opts
=(
'accepted'
'running'
'shutdown'
)
_describe
-t
state-opts
"desired state options"
state_opts
&&
ret
=
0
;;
*
)
...
...
@@ -1394,13 +1475,8 @@ __docker_node_subcommand() {
(
ls
|
list
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
)*"
{
-f
=
,--filter
=}
"[Provide filter values]:filter:
->filter-option
s"
\
"(
$help
)*"
{
-f
=
,--filter
=}
"[Provide filter values]:filter:
__docker_node_complete_ls_filter
s"
\
"(
$help
-q --quiet)"
{
-q
,--quiet
}
"[Only display IDs]"
&&
ret
=
0
case
$state
in
(
filter-options
)
__docker_node_complete_ls_filters
&&
ret
=
0
;;
esac
;;
(
promote
)
_arguments
$(
__docker_arguments
)
\
...
...
@@ -1411,15 +1487,12 @@ __docker_node_subcommand() {
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
-a --all)"
{
-a
,--all
}
"[Display all instances]"
\
"(
$help
)*"
{
-f
=
,--filter
=}
"[Provide filter values]:filter:->filter-options"
\
"(
$help
)*"
{
-f
=
,--filter
=}
"[Provide filter values]:filter:__docker_node_complete_ps_filters"
\
"(
$help
)--format=[Format the output using the given go template]:template: "
\
"(
$help
)--no-resolve[Do not map IDs to Names]"
\
"(
$help
)--no-trunc[Do not truncate output]"
\
"(
$help
-q --quiet)"
{
-q
,--quiet
}
"[Only display IDs]"
\
"(
$help
-)*:node:__docker_complete_nodes"
&&
ret
=
0
case
$state
in
(
filter-options
)
__docker_node_complete_ps_filters
&&
ret
=
0
;;
esac
;;
(
update
)
_arguments
$(
__docker_arguments
)
\
...
...
@@ -1442,13 +1515,42 @@ __docker_node_subcommand() {
# BO plugin
__docker_complete_plugins
()
{
__docker_plugin_complete_ls_filters
()
{
[[
$PREFIX
=
-
*
]]
&&
return
1
integer
ret
=
1
if
compset
-P
'*='
;
then
case
"
${${
words
[-1]%=*
}
#*=
}
"
in
(
capability
)
opts
=(
'authz'
'ipamdriver'
'logdriver'
'metricscollector'
'networkdriver'
'volumedriver'
)
_describe
-t
capability-opts
"capability options"
opts
&&
ret
=
0
;;
(
enabled
)
opts
=(
'false'
'true'
)
_describe
-t
enabled-opts
"enabled options"
opts
&&
ret
=
0
;;
*
)
_message
'value'
&&
ret
=
0
;;
esac
else
opts
=(
'capability'
'enabled'
)
_describe
-t
filter-opts
"filter options"
opts
-qS
"="
&&
ret
=
0
fi
return
ret
}
__docker_plugins
()
{
[[
$PREFIX
=
-
*
]]
&&
return
1
integer
ret
=
1
local
line s
declare
-a
lines plugins
declare
-a
lines plugins
args
lines
=(
${
(f)
${:-
"
$(
_call_program commands docker
$docker_options
plugin
ls
)
"
$'
\n
'
}}
)
filter
=
$1
;
shift
[[
$filter
!=
"none"
]]
&&
args
=(
"-f
$filter
"
)
lines
=(
${
(f)
${:-
"
$(
_call_program commands docker
$docker_options
plugin
ls
$args
)
"
$'
\n
'
}}
)
# Parse header line to find columns
local
i
=
1
j
=
1 k
header
=
${
lines
[1]
}
...
...
@@ -1474,6 +1576,21 @@ __docker_complete_plugins() {
return
ret
}
__docker_complete_plugins
()
{
[[
$PREFIX
=
-
*
]]
&&
return
1
__docker_plugins none
"
$@
"
}
__docker_complete_enabled_plugins
()
{
[[
$PREFIX
=
-
*
]]
&&
return
1
__docker_plugins
enabled
=
true
"
$@
"
}
__docker_complete_disabled_plugins
()
{
[[
$PREFIX
=
-
*
]]
&&
return
1
__docker_plugins
enabled
=
false
"
$@
"
}
__docker_plugin_commands
()
{
local
-a
_docker_plugin_subcommands
_docker_plugin_subcommands
=(
...
...
@@ -1485,6 +1602,7 @@ __docker_plugin_commands() {
"push:Push a plugin"
"rm:Remove a plugin"
"set:Change settings for a plugin"
"upgrade:Upgrade an existing plugin"
)
_describe
-t
docker-plugin-commands
"docker plugin command"
_docker_plugin_subcommands
}
...
...
@@ -1497,16 +1615,68 @@ __docker_plugin_subcommand() {
opts_help
=(
"(: -)--help[Print usage]"
)
case
"
$words
[1]"
in
(
disable|enable|inspect|install|ls|push|rm
)
(
disable
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
-f --force)"
{
-f
,--force
}
"[Force the disable of an active plugin]"
\
"(
$help
-)1:plugin:__docker_complete_enabled_plugins"
&&
ret
=
0
;;
(
enable
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
)--timeout=[HTTP client timeout (in seconds)]:timeout: "
\
"(
$help
-)1:plugin:__docker_complete_disabled_plugins"
&&
ret
=
0
;;
(
inspect
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
-f --format)"
{
-f
=
,--format
=}
"[Format the output using the given Go template]:template: "
\
"(
$help
-)*:plugin:__docker_complete_plugins"
&&
ret
=
0
;;
(
install
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
)--alias=[Local name for plugin]:alias: "
\
"(
$help
)--disable[Do not enable the plugin on install]"
\
"(
$help
)--disable-content-trust[Skip image verification (default true)]"
\
"(
$help
)--grant-all-permissions[Grant all permissions necessary to run the plugin]"
\
"(
$help
-)1:plugin:__docker_complete_plugins"
\
"(
$help
-)*:key=value: "
&&
ret
=
0
;;
(
ls
|
list
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
)*"
{
-f
=
,--filter
=}
"[Filter output based on conditions provided]:filter:__docker_plugin_complete_ls_filters"
\
"(
$help
--format)--format=[Format the output using the given Go template]:template: "
\
"(
$help
)--no-trunc[Don't truncate output]"
\
"(
$help
-q --quiet)"
{
-q
,--quiet
}
"[Only display IDs]"
&&
ret
=
0
;;
(
push
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
)--disable-content-trust[Skip image verification (default true)]"
\
"(
$help
-)1:plugin:__docker_complete_plugins"
&&
ret
=
0
;;
(
rm
|
remove
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
-f --force)"
{
-f
,--force
}
"[Force the removal of an active plugin]"
\
"(
$help
-)*:plugin:__docker_complete_plugins"
&&
ret
=
0
;;
(
set
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
-)1:plugin:__docker_complete_plugins"
\
"(
$help
-)*:key=value: "
&&
ret
=
0
"(
$help
-)*:key=value: "
&&
ret
=
0
;;
(
upgrade
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
)--disable-content-trust[Skip image verification (default true)]"
\
"(
$help
)--grant-all-permissions[Grant all permissions necessary to run the plugin]"
\
"(
$help
)--skip-remote-check[Do not check if specified remote plugin matches existing plugin image]"
\
"(
$help
-)1:plugin:__docker_complete_plugins"
\
"(
$help
-):remote: "
&&
ret
=
0
;;
(
help
)
_arguments
$(
__docker_arguments
)
":subcommand:__docker_plugin_commands"
&&
ret
=
0
...
...
@@ -1588,7 +1758,7 @@ __docker_secret_subcommand() {
case
"
$words
[1]"
in
(
create
)
_arguments
$(
__docker_arguments
)
\
_arguments
$(
__docker_arguments
)
-A
'-*'
\
$opts_help
\
"(
$help
)*"
{
-l
=
,--label
=}
"[Secret labels]:label: "
\
"(
$help
-):secret: "
&&
ret
=
0
...
...
@@ -1602,6 +1772,7 @@ __docker_secret_subcommand() {
(
ls
|
list
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
)--format=[Format the output using the given go template]:template: "
\
"(
$help
-q --quiet)"
{
-q
,--quiet
}
"[Only display IDs]"
&&
ret
=
0
;;
(
rm
|
remove
)
...
...
@@ -1630,6 +1801,10 @@ __docker_service_complete_ls_filters() {
(
id
)
__docker_complete_services_ids
&&
ret
=
0
;;
(
mode
)
opts
=(
'global'
'replicated'
)
_describe
-t
mode-opts
"mode options"
opts
&&
ret
=
0
;;
(
name
)
__docker_complete_services_names
&&
ret
=
0
;;
...
...
@@ -1638,7 +1813,7 @@ __docker_service_complete_ls_filters() {
;;
esac
else
opts
=(
'id'
'label'
'name'
)
opts
=(
'id'
'label'
'
mode'
'
name'
)
_describe
-t
filter-opts
"filter options"
opts
-qS
"="
&&
ret
=
0
fi
...
...
@@ -1652,7 +1827,7 @@ __docker_service_complete_ps_filters() {
if
compset
-P
'*='
;
then
case
"
${${
words
[-1]%=*
}
#*=
}
"
in
(
desired-state
)
state_opts
=(
'accepted'
'running'
)
state_opts
=(
'accepted'
'running'
'shutdown'
)
_describe
-t
state-opts
"desired state options"
state_opts
&&
ret
=
0
;;
*
)
...
...
@@ -1667,6 +1842,28 @@ __docker_service_complete_ps_filters() {
return
ret
}
__docker_service_complete_placement_pref
()
{
[[
$PREFIX
=
-
*
]]
&&
return
1
integer
ret
=
1
if
compset
-P
'*='
;
then
case
"
${${
words
[-1]%=*
}
#*=
}
"
in
(
spread
)
opts
=(
'engine.labels'
'node.labels'
)
_describe
-t
spread-opts
"spread options"
opts
-qS
"."
&&
ret
=
0
;;
*
)
_message
'value'
&&
ret
=
0
;;
esac
else
opts
=(
'spread'
)
_describe
-t
pref-opts
"placement pref options"
opts
-qS
"="
&&
ret
=
0
fi
return
ret
}
__docker_services
()
{
[[
$PREFIX
=
-
*
]]
&&
return
1
integer
ret
=
1
...
...
@@ -1732,8 +1929,10 @@ __docker_service_commands() {
_docker_service_subcommands
=(
"create:Create a new service"
"inspect:Display detailed information on one or more services"
"logs:Fetch the logs of a service or task"
"ls:List services"
"rm:Remove one or more services"
"rollback:Revert changes to a service's configuration"
"scale:Scale one or multiple replicated services"
"ps:List the tasks of a service"
"update:Update a service"
...
...
@@ -1764,19 +1963,25 @@ __docker_service_subcommand() {
"(
$help
)*--mount=[Attach a filesystem mount to the service]:mount: "
"(
$help
)*--network=[Network attachments]:network: "
"(
$help
)--no-healthcheck[Disable any container-specified HEALTHCHECK]"
"(
$help
)
*"
{
-p
=
,--publish
=}
"[Publish a port as a node port]:port:
"
"(
$help
)
--read-only[Mount the container's root filesystem as read only]
"
"(
$help
)--replicas=[Number of tasks]:replicas: "
"(
$help
)--reserve-cpu=[Reserve CPUs]:value: "
"(
$help
)--reserve-memory=[Reserve Memory]:value: "
"(
$help
)--restart-condition=[Restart when condition is met]:mode:(any none on-failure)"
"(
$help
)--restart-delay=[Delay between restart attempts]:delay: "
"(
$help
)--restart-max-attempts=[Maximum number of restarts before giving up]:max-attempts: "
"(
$help
)--restart-window=[Window used to evaluate the restart policy]:window: "
"(
$help
)--restart-window=[Window used to evaluate the restart policy]:duration: "
"(
$help
)--rollback-delay=[Delay between task rollbacks]:duration: "
"(
$help
)--rollback-failure-action=[Action on rollback failure]:action:(continue pause)"
"(
$help
)--rollback-max-failure-ratio=[Failure rate to tolerate during a rollback]:failure rate: "
"(
$help
)--rollback-monitor=[Duration after each task rollback to monitor for failure]:duration: "
"(
$help
)--rollback-parallelism=[Maximum number of tasks rolled back simultaneously]:number: "
"(
$help
)*--secret=[Specify secrets to expose to the service]:secret:__docker_complete_secrets"
"(
$help
)--stop-grace-period=[Time to wait before force killing a container]:grace period: "
"(
$help
)--stop-signal=[Signal to stop the container]:signal:_signals"
"(
$help
-t --tty)"
{
-t
,--tty
}
"[Allocate a pseudo-TTY]"
"(
$help
)--update-delay=[Delay between updates]:delay: "
"(
$help
)--update-failure-action=[Action on update failure]:mode:(
pause continue
)"
"(
$help
)--update-failure-action=[Action on update failure]:mode:(
continue pause rollback
)"
"(
$help
)--update-max-failure-ratio=[Failure rate to tolerate during an update]:fraction: "
"(
$help
)--update-monitor=[Duration after each task update to monitor for failure]:window: "
"(
$help
)--update-parallelism=[Maximum number of tasks updated simultaneously]:number: "
...
...
@@ -1797,7 +2002,8 @@ __docker_service_subcommand() {
"(
$help
)*--env-file=[Read environment variables from a file]:environment file:_files"
\
"(
$help
)--mode=[Service Mode]:mode:(global replicated)"
\
"(
$help
)--name=[Service name]:name: "
\
"(
$help
)*--publish=[Publish a port]:port: "
\
"(
$help
)*--placement-pref=[Add a placement preference]:pref:__docker_service_complete_placement_pref"
\
"(
$help
)*"
{
-p
=
,--publish
=}
"[Publish a port as a node port]:port: "
\
"(
$help
-): :__docker_complete_images"
\
"(
$help
-):command: _command_names -e"
\
"(
$help
-)*::arguments: _normal"
&&
ret
=
0
...
...
@@ -1809,25 +2015,41 @@ __docker_service_subcommand() {
"(
$help
)--pretty[Print the information in a human friendly format]"
\
"(
$help
-)*:service:__docker_complete_services"
&&
ret
=
0
;;
(
logs
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
-f --follow)"
{
-f
,--follow
}
"[Follow log output]"
\
"(
$help
)--no-resolve[Do not map IDs to Names]"
\
"(
$help
)--no-task-ids[Do not include task IDs]"
\
"(
$help
)--no-trunc[Do not truncate output]"
\
"(
$help
)--since=[Show logs since timestamp]:timestamp: "
\
"(
$help
)--tail=[Number of lines to show from the end of the logs]:lines:(1 10 20 50 all)"
\
"(
$help
-t --timestamps)"
{
-t
,--timestamps
}
"[Show timestamps]"
\
"(
$help
-)1:service:__docker_complete_services"
&&
ret
=
0
;;
(
ls
|
list
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
)*"
{
-f
=
,--filter
=}
"[Filter output based on conditions provided]:filter:->filter-options"
\
"(
$help
)*"
{
-f
=
,--filter
=}
"[Filter output based on conditions provided]:filter:__docker_service_complete_ls_filters"
\
"(
$help
)--format=[Pretty-print services using a Go template]:template: "
\
"(
$help
-q --quiet)"
{
-q
,--quiet
}
"[Only display IDs]"
&&
ret
=
0
case
$state
in
(
filter-options
)
__docker_service_complete_ls_filters
&&
ret
=
0
;;
esac
;;
(
rm
|
remove
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
-)*:service:__docker_complete_services"
&&
ret
=
0
;;
(
rollback
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
-d --detach)"
{
-d
=
false
,--detach
=
false
}
"[Disable detached mode]"
\
"(
$help
-q --quiet)"
{
-q
,--quiet
}
"[Suppress progress output]"
\
"(
$help
-)*:service:__docker_complete_services"
&&
ret
=
0
;;
(
scale
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
-d --detach)"
{
-d
=
false
,--detach
=
false
}
"[Disable detached mode]"
\
"(
$help
-)*:service:->values"
&&
ret
=
0
case
$state
in
(
values
)
...
...
@@ -1842,16 +2064,12 @@ __docker_service_subcommand() {
(
ps
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
)*"
{
-f
=
,--filter
=}
"[Provide filter values]:filter:->filter-options"
\
"(
$help
)*"
{
-f
=
,--filter
=}
"[Provide filter values]:filter:__docker_service_complete_ps_filters"
\
"(
$help
)--format=[Format the output using the given go template]:template: "
\
"(
$help
)--no-resolve[Do not map IDs to Names]"
\
"(
$help
)--no-trunc[Do not truncate output]"
\
"(
$help
-q --quiet)"
{
-q
,--quiet
}
"[Only display task IDs]"
\
"(
$help
-)1:service:__docker_complete_services"
&&
ret
=
0
case
$state
in
(
filter-options
)
__docker_service_complete_ps_filters
&&
ret
=
0
;;
esac
"(
$help
-)*:service:__docker_complete_services"
&&
ret
=
0
;;
(
update
)
_arguments
$(
__docker_arguments
)
\
...
...
@@ -1870,6 +2088,8 @@ __docker_service_subcommand() {
"(
$help
)*--group-add=[Add additional supplementary user groups to the container]:group:_groups"
\
"(
$help
)*--group-rm=[Remove previously added supplementary user groups from the container]:group:_groups"
\
"(
$help
)--image=[Service image tag]:image:__docker_complete_repositories"
\
"(
$help
)*--placement-pref-add=[Add a placement preference]:pref:__docker_service_complete_placement_pref"
\
"(
$help
)*--placement-pref-rm=[Remove a placement preference]:pref:__docker_service_complete_placement_pref"
\
"(
$help
)*--publish-add=[Add or update a port]:port: "
\
"(
$help
)*--publish-rm=[Remove a port(target-port mandatory)]:port: "
\
"(
$help
)--rollback[Rollback to previous specification]"
\
...
...
@@ -1894,7 +2114,7 @@ __docker_stack_complete_ps_filters() {
if
compset
-P
'*='
;
then
case
"
${${
words
[-1]%=*
}
#*=
}
"
in
(
desired-state
)
state_opts
=(
'accepted'
'running'
)
state_opts
=(
'accepted'
'running'
'shutdown'
)
_describe
-t
state-opts
"desired state options"
state_opts
&&
ret
=
0
;;
*
)
...
...
@@ -2000,8 +2220,10 @@ __docker_stack_subcommand() {
$opts_help
\
"(
$help
-a --all)"
{
-a
,--all
}
"[Display all tasks]"
\
"(
$help
)*"
{
-f
=
,--filter
=}
"[Filter output based on conditions provided]:filter:__docker_stack_complete_ps_filters"
\
"(
$help
)--format=[Format the output using the given go template]:template: "
\
"(
$help
)--no-resolve[Do not map IDs to Names]"
\
"(
$help
)--no-trunc[Do not truncate output]"
\
"(
$help
-q --quiet)"
{
-q
,--quiet
}
"[Only display task IDs]"
\
"(
$help
-):stack:__docker_complete_stacks"
&&
ret
=
0
;;
(
rm
|
remove|down
)
...
...
@@ -2013,6 +2235,7 @@ __docker_stack_subcommand() {
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
)*"
{
-f
=
,--filter
=}
"[Filter output based on conditions provided]:filter:__docker_stack_complete_services_filters"
\
"(
$help
)--format=[Pretty-print services using a Go template]:template: "
\
"(
$help
-q --quiet)"
{
-q
,--quiet
}
"[Only display IDs]"
\
"(
$help
-):stack:__docker_complete_stacks"
&&
ret
=
0
;;
...
...
@@ -2035,6 +2258,8 @@ __docker_swarm_commands() {
"join:Join a swarm as a node and/or manager"
"join-token:Manage join tokens"
"leave:Leave a swarm"
"unlock:Unlock swarm"
"unlock-key:Manage the unlock key"
"update:Update the swarm"
)
_describe
-t
docker-swarm-commands
"docker swarm command"
_docker_swarm_subcommands
...
...
@@ -2051,7 +2276,12 @@ __docker_swarm_subcommand() {
(
init
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
)--advertise-addr[Advertised address]:ip
\:
port: "
\
"(
$help
)--advertise-addr=[Advertised address]:ip
\:
port: "
\
"(
$help
)--data-path-addr=[Data path IP or interface]:ip "
\
"(
$help
)--autolock[Enable manager autolocking]"
\
"(
$help
)--availability=[Availability of the node]:availability:(active drain pause)"
\
"(
$help
)--cert-expiry=[Validity period for node certificates]:duration: "
\
"(
$help
)--dispatcher-heartbeat=[Dispatcher heartbeat period]:duration: "
\
"(
$help
)*--external-ca=[Specifications of one or more certificate signing endpoints]:endpoint: "
\
"(
$help
)--force-new-cluster[Force create a new cluster from current state]"
\
"(
$help
)--listen-addr=[Listen address]:ip
\:
port: "
\
...
...
@@ -2060,9 +2290,11 @@ __docker_swarm_subcommand() {
"(
$help
)--task-history-limit=[Task history retention limit]:limit: "
&&
ret
=
0
;;
(
join
)
_arguments
$(
__docker_arguments
)
\
_arguments
$(
__docker_arguments
)
-A
'-*'
\
$opts_help
\
"(
$help
)--advertise-addr[Advertised address]:ip
\:
port: "
\
"(
$help
)--advertise-addr=[Advertised address]:ip
\:
port: "
\
"(
$help
)--data-path-addr=[Data path IP or interface]:ip "
\
"(
$help
)--availability=[Availability of the node]:availability:(active drain pause)"
\
"(
$help
)--listen-addr=[Listen address]:ip
\:
port: "
\
"(
$help
)--token=[Token for entry into the swarm]:secret: "
\
"(
$help
-):host
\:
port: "
&&
ret
=
0
...
...
@@ -2079,12 +2311,23 @@ __docker_swarm_subcommand() {
$opts_help
\
"(
$help
-f --force)"
{
-f
,--force
}
"[Force this node to leave the swarm, ignoring warnings]"
&&
ret
=
0
;;
(
unlock
)
_arguments
$(
__docker_arguments
)
\
$opts_help
&&
ret
=
0
;;
(
unlock-key
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
-q --quiet)"
{
-q
,--quiet
}
"[Only display token]"
\
"(
$help
)--rotate[Rotate unlock token]"
&&
ret
=
0
;;
(
update
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
)--autolock[Enable manager autolocking]"
\
"(
$help
)--cert-expiry=[Validity period for node certificates]:duration: "
\
"(
$help
)*--external-ca=[Specifications of one or more certificate signing endpoints]:endpoint: "
\
"(
$help
)--dispatcher-heartbeat=[Dispatcher heartbeat period]:duration: "
\
"(
$help
)*--external-ca=[Specifications of one or more certificate signing endpoints]:endpoint: "
\
"(
$help
)--max-snapshots[Number of additional Raft snapshots to retain]"
\
"(
$help
)--snapshot-interval[Number of log entries between Raft snapshots]"
\
"(
$help
)--task-history-limit=[Task history retention limit]:limit: "
&&
ret
=
0
...
...
@@ -2142,7 +2385,9 @@ __docker_system_subcommand() {
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
-a --all)"
{
-a
,--all
}
"[Remove all unused data, not just dangling ones]"
\
"(
$help
-f --force)"
{
-f
,--force
}
"[Do not prompt for confirmation]"
&&
ret
=
0
"(
$help
)*--filter=[Filter values]:filter:__docker_complete_prune_filters"
\
"(
$help
-f --force)"
{
-f
,--force
}
"[Do not prompt for confirmation]"
\
"(
$help
)--volumes=[Remove all unused volumes]"
&&
ret
=
0
;;
(
help
)
_arguments
$(
__docker_arguments
)
":subcommand:__docker_volume_commands"
&&
ret
=
0
...
...
@@ -2253,14 +2498,9 @@ __docker_volume_subcommand() {
(
ls
)
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
)*"
{
-f
=
,--filter
=}
"[Provide filter values]:filter:
->filter-option
s"
\
"(
$help
)*"
{
-f
=
,--filter
=}
"[Provide filter values]:filter:
__docker_volume_complete_ls_filter
s"
\
"(
$help
)--format=[Pretty-print volumes using a Go template]:template: "
\
"(
$help
-q --quiet)"
{
-q
,--quiet
}
"[Only display volume names]"
&&
ret
=
0
case
$state
in
(
filter-options
)
__docker_volume_complete_ls_filters
&&
ret
=
0
;;
esac
;;
(
prune
)
_arguments
$(
__docker_arguments
)
\
...
...
@@ -2290,14 +2530,28 @@ __docker_caching_policy() {
__docker_commands
()
{
local
cache_policy
integer
force_invalidation
=
0
zstyle
-s
":completion:
${
curcontext
}
:"
cache-policy cache_policy
if
[[
-z
"
$cache_policy
"
]]
;
then
zstyle
":completion:
${
curcontext
}
:"
cache-policy __docker_caching_policy
fi
if
(
[[
${
+_docker_subcommands
}
-eq
0
]]
||
_cache_invalid docker_subcommands
)
\
&&
!
_retrieve_cache docker_subcommands
;
if
(
((
!
${
+_docker_hide_legacy_commands
}
))
||
_cache_invalid docker_hide_legacy_commands
)
\
&&
!
_retrieve_cache docker_hide_legacy_commands
;
then
_docker_hide_legacy_commands
=
"
${
DOCKER_HIDE_LEGACY_COMMANDS
}
"
_store_cache docker_hide_legacy_commands _docker_hide_legacy_commands
fi
if
[[
"
${
_docker_hide_legacy_commands
}
"
!=
"
${
DOCKER_HIDE_LEGACY_COMMANDS
}
"
]]
;
then
force_invalidation
=
1
_docker_hide_legacy_commands
=
"
${
DOCKER_HIDE_LEGACY_COMMANDS
}
"
_store_cache docker_hide_legacy_commands _docker_hide_legacy_commands
fi
if
(
[[
${
+_docker_subcommands
}
-eq
0
]]
||
_cache_invalid docker_subcommands
)
\
&&
!
_retrieve_cache docker_subcommands
||
[[
${
force_invalidation
}
-eq
1
]]
;
then
local
-a
lines
lines
=(
${
(f)
"
$(
_call_program commands docker 2>&1
)
"
}
)
...
...
@@ -2322,6 +2576,23 @@ __docker_subcommand() {
(
build|history|import|load|pull|push|save|tag
)
__docker_image_subcommand
&&
ret
=
0
;;
(
checkpoint
)
local
curcontext
=
"
$curcontext
"
state
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
-): :->command"
\
"(
$help
-)*:: :->option-or-argument"
&&
ret
=
0
case
$state
in
(
command
)
__docker_checkpoint_commands
&&
ret
=
0
;;
(
option-or-argument
)
curcontext
=
${
curcontext
%
:
*
:
*
}
:docker-
${
words
[-1]
}
:
__docker_checkpoint_subcommand
&&
ret
=
0
;;
esac
;;
(
container
)
local
curcontext
=
"
$curcontext
"
state
_arguments
$(
__docker_arguments
)
\
...
...
@@ -2343,6 +2614,7 @@ __docker_subcommand() {
_arguments
$(
__docker_arguments
)
\
$opts_help
\
"(
$help
)*--add-runtime=[Register an additional OCI compatible runtime]:runtime:__docker_complete_runtimes"
\
"(
$help
)*--allow-nondistributable-artifacts=[Push nondistributable artifacts to specified registries]:registry: "
\
"(
$help
)--api-cors-header=[CORS headers in the Engine API]:CORS headers: "
\
"(
$help
)*--authorization-plugin=[Authorization plugins to load]"
\
"(
$help
-b --bridge)"
{
-b
=
,--bridge
=}
"[Attach containers to a network bridge]:bridge:_net_interfaces"
\
...
...
@@ -2353,11 +2625,13 @@ __docker_subcommand() {
"(
$help
)*--cluster-store-opt=[Cluster store options]:Cluster options:->cluster-store-options"
\
"(
$help
)--config-file=[Path to daemon configuration file]:Config File:_files"
\
"(
$help
)--containerd=[Path to containerd socket]:socket:_files -g
\"
*.sock
\"
"
\
"(
$help
)--data-root=[Root directory of persisted Docker data]:path:_directories"
\
"(
$help
-D --debug)"
{
-D
,--debug
}
"[Enable debug mode]"
\
"(
$help
)--default-gateway[Container default gateway IPv4 address]:IPv4 address: "
\
"(
$help
)--default-gateway-v6[Container default gateway IPv6 address]:IPv6 address: "
\
"(
$help
)--default-shm-size=[Default shm size for containers]:size:"
\
"(
$help
)*--default-ulimit=[Default ulimits for containers]:ulimit: "
\
"(
$help
)--disable-legacy-registry[Disable contacting legacy registries]"
\
"(
$help
)--disable-legacy-registry[Disable contacting legacy registries
(default true)
]"
\
"(
$help
)*--dns=[DNS server to use]:DNS: "
\
"(
$help
)*--dns-opt=[DNS options to use]:DNS option: "
\
"(
$help
)*--dns-search=[DNS search domains to use]:DNS search: "
\
...
...
@@ -2367,9 +2641,9 @@ __docker_subcommand() {
"(
$help
)--fixed-cidr=[IPv4 subnet for fixed IPs]:IPv4 subnet: "
\
"(
$help
)--fixed-cidr-v6=[IPv6 subnet for fixed IPs]:IPv6 subnet: "
\
"(
$help
-G --group)"
{
-G
=
,--group
=}
"[Group for the unix socket]:group:_groups"
\
"(
$help
-g --graph)"
{
-g
=
,--graph
=}
"[Root of the Docker runtime]:path:_directories"
\
"(
$help
-H --host)"
{
-H
=
,--host
=}
"[tcp://host:port to bind/connect to]:host: "
\
"(
$help
)--icc[Enable inter-container communication]"
\
"(
$help
)--init[Run an init inside containers to forward signals and reap processes]"
\
"(
$help
)--init-path=[Path to the docker-init binary]:docker-init binary:_files"
\
"(
$help
)*--insecure-registry=[Enable insecure registry communication]:registry: "
\
"(
$help
)--ip=[Default IP when binding container ports]"
\
...
...
@@ -2475,6 +2749,8 @@ __docker_subcommand() {
__docker_complete_nodes
&&
ret
=
0
elif
[[
${
words
[(r)--type=plugin]
}
==
--type
=
plugin
]]
;
then
__docker_complete_plugins
&&
ret
=
0
elif
[[
${
words
[(r)--type=service]
}
==
--type
=
secrets
]]
;
then
__docker_complete_secrets
&&
ret
=
0
elif
[[
${
words
[(r)--type=service]
}
==
--type
=
service
]]
;
then
__docker_complete_services
&&
ret
=
0
elif
[[
${
words
[(r)--type=volume]
}
==
--type
=
volume
]]
;
then
...
...
@@ -2485,6 +2761,7 @@ __docker_subcommand() {
__docker_complete_networks
__docker_complete_nodes
__docker_complete_plugins
__docker_complete_secrets
__docker_complete_services
__docker_complete_volumes
&&
ret
=
0
fi
...
...
@@ -2492,14 +2769,15 @@ __docker_subcommand() {
esac
;;
(
login
)
_arguments
$(
__docker_arguments
)
\
_arguments
$(
__docker_arguments
)
-A
'-*'
\
$opts_help
\
"(
$help
-p --password)"
{
-p
=
,--password
=}
"[Password]:password: "
\
"(
$help
)--password-stdin[Read password from stdin]"
\
"(
$help
-u --user)"
{
-u
=
,--user
=}
"[Username]:username: "
\
"(
$help
-)1:server: "
&&
ret
=
0
;;
(
logout
)
_arguments
$(
__docker_arguments
)
\
_arguments
$(
__docker_arguments
)
-A
'-*'
\
$opts_help
\
"(
$help
-)1:server: "
&&
ret
=
0
;;
...
...
@@ -2563,18 +2841,12 @@ __docker_subcommand() {
__docker_image_subcommand
&&
ret
=
0
;;
(
search
)
_arguments
$(
__docker_arguments
)
\
_arguments
$(
__docker_arguments
)
-A
'-*'
\
$opts_help
\
"(
$help
)*"
{
-f
=
,--filter
=}
"[Filter values]:filter:
->filter-option
s"
\
"(
$help
)*"
{
-f
=
,--filter
=}
"[Filter values]:filter:
__docker_complete_search_filter
s"
\
"(
$help
)--limit=[Maximum returned search results]:limit:(1 5 10 25 50)"
\
"(
$help
)--no-trunc[Do not truncate output]"
\
"(
$help
-):term: "
&&
ret
=
0
case
$state
in
(
filter-options
)
__docker_complete_search_filters
&&
ret
=
0
;;
esac
;;
(
secret
)
local
curcontext
=
"
$curcontext
"
state
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment