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
Nov 11, 2017
by
Antonis Kalipetis
Committed by
Robby Russell
Nov 11, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update Docker completion plugin (#6410)
parent
dcb8101f
Changes
2
Show 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.
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
...
...
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