Skip to content

Commit cccfe63

Browse files
authored
Merge pull request moby#23868 from albers/completion-swarm-enhancements
bash completion enhancements for `docker {swarm,node,service}`
2 parents e2a2674 + e3339a7 commit cccfe63

File tree

1 file changed

+66
-48
lines changed

1 file changed

+66
-48
lines changed

contrib/completion/bash/docker

+66-48
Original file line numberDiff line numberDiff line change
@@ -1555,47 +1555,7 @@ _docker_service() {
15551555
}
15561556

15571557
_docker_service_create() {
1558-
local options_with_args="
1559-
--constraint
1560-
--endpoint-mode
1561-
--env -e
1562-
--label -l
1563-
--limit-cpu
1564-
--limit-memory
1565-
--mode
1566-
--mount -m
1567-
--name
1568-
--network
1569-
--publish -p
1570-
--replicas
1571-
--reserve-cpu
1572-
--reserve-memory
1573-
--restart-condition
1574-
--restart-delay
1575-
--restart-max-attempts
1576-
--restart-window
1577-
--stop-grace-period
1578-
--update-delay
1579-
--update-parallelism
1580-
--user -u
1581-
--workdir -w
1582-
"
1583-
1584-
local boolean_options="
1585-
--help
1586-
"
1587-
1588-
case "$prev" in
1589-
$(__docker_to_extglob "$options_with_args") )
1590-
return
1591-
;;
1592-
esac
1593-
1594-
case "$cur" in
1595-
-*)
1596-
COMPREPLY=( $( compgen -W "$boolean_options $options_with_args" -- "$cur" ) )
1597-
;;
1598-
esac
1558+
_docker_service_update
15991559
}
16001560

16011561
_docker_service_inspect() {
@@ -1675,13 +1635,12 @@ _docker_service_tasks() {
16751635
}
16761636

16771637
_docker_service_update() {
1638+
local $subcommand="${words[$subcommand_pos]}"
1639+
16781640
local options_with_args="
1679-
--arg
1680-
--command
16811641
--constraint
16821642
--endpoint-mode
16831643
--env -e
1684-
--image
16851644
--label -l
16861645
--limit-cpu
16871646
--limit-memory
@@ -1708,7 +1667,47 @@ _docker_service_update() {
17081667
--help
17091668
"
17101669

1670+
if [ "$subcommand" = "update" ] ; then
1671+
options_with_args="$options_with_args
1672+
--arg
1673+
--command
1674+
--image
1675+
"
1676+
1677+
case "$prev" in
1678+
--image)
1679+
__docker_complete_image_repos_and_tags
1680+
return
1681+
;;
1682+
esac
1683+
fi
1684+
17111685
case "$prev" in
1686+
--endpoint-mode)
1687+
COMPREPLY=( $( compgen -W "DNSRR VIP" -- "$cur" ) )
1688+
return
1689+
;;
1690+
--env|-e)
1691+
COMPREPLY=( $( compgen -e -S = -- "$cur" ) )
1692+
__docker_nospace
1693+
return
1694+
;;
1695+
--mode)
1696+
COMPREPLY=( $( compgen -W "global replicated" -- "$cur" ) )
1697+
return
1698+
;;
1699+
--network)
1700+
__docker_complete_networks
1701+
return
1702+
;;
1703+
--restart-condition)
1704+
COMPREPLY=( $( compgen -W "any none on_failure" -- "$cur" ) )
1705+
return
1706+
;;
1707+
--user|-u)
1708+
__docker_complete_user_group
1709+
return
1710+
;;
17121711
$(__docker_to_extglob "$options_with_args") )
17131712
return
17141713
;;
@@ -1719,7 +1718,9 @@ _docker_service_update() {
17191718
COMPREPLY=( $( compgen -W "$boolean_options $options_with_args" -- "$cur" ) )
17201719
;;
17211720
*)
1722-
__docker_complete_services
1721+
if [ "$subcommand" = "update" ] ; then
1722+
__docker_complete_services
1723+
fi
17231724
esac
17241725
}
17251726

@@ -1745,7 +1746,11 @@ _docker_swarm() {
17451746

17461747
_docker_swarm_init() {
17471748
case "$prev" in
1748-
--auto-accept|--listen-addr|--secret)
1749+
--auto-accept)
1750+
COMPREPLY=( $( compgen -W "manager none worker" -- "$cur" ) )
1751+
return
1752+
;;
1753+
--listen-addr|--secret)
17491754
return
17501755
;;
17511756
esac
@@ -1795,7 +1800,11 @@ _docker_swarm_leave() {
17951800

17961801
_docker_swarm_update() {
17971802
case "$prev" in
1798-
--auto-accept|--cert-expiry|--dispatcher-heartbeat|--secret|--task-history-limit)
1803+
--auto-accept)
1804+
COMPREPLY=( $( compgen -W "manager none worker" -- "$cur" ) )
1805+
return
1806+
;;
1807+
--cert-expiry|--dispatcher-heartbeat|--secret|--task-history-limit)
17991808
return
18001809
;;
18011810
esac
@@ -1926,7 +1935,16 @@ _docker_node_tasks() {
19261935

19271936
_docker_node_update() {
19281937
case "$prev" in
1929-
--availability|--membership|--role)
1938+
--availability)
1939+
COMPREPLY=( $( compgen -W "active drain pause" -- "$cur" ) )
1940+
return
1941+
;;
1942+
--membership)
1943+
COMPREPLY=( $( compgen -W "accepted rejected" -- "$cur" ) )
1944+
return
1945+
;;
1946+
--role)
1947+
COMPREPLY=( $( compgen -W "manager worker" -- "$cur" ) )
19301948
return
19311949
;;
19321950
esac

0 commit comments

Comments
 (0)