Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
| ... | ... |
@@ -1515,6 +1515,107 @@ __docker_plugin_subcommand() {
|
| 1515 | 1515 |
|
| 1516 | 1516 |
# EO plugin |
| 1517 | 1517 |
|
| 1518 |
+# BO secret |
|
| 1519 |
+ |
|
| 1520 |
+__docker_secrets() {
|
|
| 1521 |
+ [[ $PREFIX = -* ]] && return 1 |
|
| 1522 |
+ integer ret=1 |
|
| 1523 |
+ local line s |
|
| 1524 |
+ declare -a lines secrets |
|
| 1525 |
+ |
|
| 1526 |
+ type=$1; shift |
|
| 1527 |
+ |
|
| 1528 |
+ lines=(${(f)${:-"$(_call_program commands docker $docker_options secret ls)"$'\n'}})
|
|
| 1529 |
+ |
|
| 1530 |
+ # Parse header line to find columns |
|
| 1531 |
+ local i=1 j=1 k header=${lines[1]}
|
|
| 1532 |
+ declare -A begin end |
|
| 1533 |
+ while (( j < ${#header} - 1 )); do
|
|
| 1534 |
+ i=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 1 ))
|
|
| 1535 |
+ j=$(( i + ${${header[$i,-1]}[(i) ]} - 1 ))
|
|
| 1536 |
+ k=$(( j + ${${header[$j,-1]}[(i)[^ ]]} - 2 ))
|
|
| 1537 |
+ begin[${header[$i,$((j-1))]}]=$i
|
|
| 1538 |
+ end[${header[$i,$((j-1))]}]=$k
|
|
| 1539 |
+ done |
|
| 1540 |
+ end[${header[$i,$((j-1))]}]=-1
|
|
| 1541 |
+ lines=(${lines[2,-1]})
|
|
| 1542 |
+ |
|
| 1543 |
+ # ID |
|
| 1544 |
+ if [[ $type = (ids|all) ]]; then |
|
| 1545 |
+ for line in $lines; do |
|
| 1546 |
+ s="${line[${begin[ID]},${end[ID]}]%% ##}"
|
|
| 1547 |
+ secrets=($secrets $s) |
|
| 1548 |
+ done |
|
| 1549 |
+ fi |
|
| 1550 |
+ |
|
| 1551 |
+ # Names |
|
| 1552 |
+ if [[ $type = (names|all) ]]; then |
|
| 1553 |
+ for line in $lines; do |
|
| 1554 |
+ s="${line[${begin[NAME]},${end[NAME]}]%% ##}"
|
|
| 1555 |
+ secrets=($secrets $s) |
|
| 1556 |
+ done |
|
| 1557 |
+ fi |
|
| 1558 |
+ |
|
| 1559 |
+ _describe -t secrets-list "secrets" secrets "$@" && ret=0 |
|
| 1560 |
+ return ret |
|
| 1561 |
+} |
|
| 1562 |
+ |
|
| 1563 |
+__docker_complete_secrets() {
|
|
| 1564 |
+ [[ $PREFIX = -* ]] && return 1 |
|
| 1565 |
+ __docker_secrets all "$@" |
|
| 1566 |
+} |
|
| 1567 |
+ |
|
| 1568 |
+__docker_secret_commands() {
|
|
| 1569 |
+ local -a _docker_secret_subcommands |
|
| 1570 |
+ _docker_secret_subcommands=( |
|
| 1571 |
+ "create:Create a secret using stdin as content" |
|
| 1572 |
+ "inspect:Display detailed information on one or more secrets" |
|
| 1573 |
+ "ls:List secrets" |
|
| 1574 |
+ "rm:Remove one or more secrets" |
|
| 1575 |
+ ) |
|
| 1576 |
+ _describe -t docker-secret-commands "docker secret command" _docker_secret_subcommands |
|
| 1577 |
+} |
|
| 1578 |
+ |
|
| 1579 |
+__docker_secret_subcommand() {
|
|
| 1580 |
+ local -a _command_args opts_help |
|
| 1581 |
+ local expl help="--help" |
|
| 1582 |
+ integer ret=1 |
|
| 1583 |
+ |
|
| 1584 |
+ opts_help=("(: -)--help[Print usage]")
|
|
| 1585 |
+ |
|
| 1586 |
+ case "$words[1]" in |
|
| 1587 |
+ (create) |
|
| 1588 |
+ _arguments $(__docker_arguments) \ |
|
| 1589 |
+ $opts_help \ |
|
| 1590 |
+ "($help)*"{-l=,--label=}"[Secret labels]:label: " \
|
|
| 1591 |
+ "($help -):secret: " && ret=0 |
|
| 1592 |
+ ;; |
|
| 1593 |
+ (inspect) |
|
| 1594 |
+ _arguments $(__docker_arguments) \ |
|
| 1595 |
+ $opts_help \ |
|
| 1596 |
+ "($help -f --format)"{-f=,--format=}"[Format the output using the given Go template]:template: " \
|
|
| 1597 |
+ "($help -)*:secret:__docker_complete_secrets" && ret=0 |
|
| 1598 |
+ ;; |
|
| 1599 |
+ (ls|list) |
|
| 1600 |
+ _arguments $(__docker_arguments) \ |
|
| 1601 |
+ $opts_help \ |
|
| 1602 |
+ "($help -q --quiet)"{-q,--quiet}"[Only display IDs]" && ret=0
|
|
| 1603 |
+ ;; |
|
| 1604 |
+ (rm|remove) |
|
| 1605 |
+ _arguments $(__docker_arguments) \ |
|
| 1606 |
+ $opts_help \ |
|
| 1607 |
+ "($help -)*:secret:__docker_complete_secrets" && ret=0 |
|
| 1608 |
+ ;; |
|
| 1609 |
+ (help) |
|
| 1610 |
+ _arguments $(__docker_arguments) ":subcommand:__docker_secret_commands" && ret=0 |
|
| 1611 |
+ ;; |
|
| 1612 |
+ esac |
|
| 1613 |
+ |
|
| 1614 |
+ return ret |
|
| 1615 |
+} |
|
| 1616 |
+ |
|
| 1617 |
+# EO secret |
|
| 1618 |
+ |
|
| 1518 | 1619 |
# BO service |
| 1519 | 1620 |
|
| 1520 | 1621 |
__docker_service_complete_ls_filters() {
|
| ... | ... |
@@ -2311,6 +2412,23 @@ __docker_subcommand() {
|
| 2311 | 2311 |
;; |
| 2312 | 2312 |
esac |
| 2313 | 2313 |
;; |
| 2314 |
+ (secret) |
|
| 2315 |
+ local curcontext="$curcontext" state |
|
| 2316 |
+ _arguments $(__docker_arguments) \ |
|
| 2317 |
+ $opts_help \ |
|
| 2318 |
+ "($help -): :->command" \ |
|
| 2319 |
+ "($help -)*:: :->option-or-argument" && ret=0 |
|
| 2320 |
+ |
|
| 2321 |
+ case $state in |
|
| 2322 |
+ (command) |
|
| 2323 |
+ __docker_secret_commands && ret=0 |
|
| 2324 |
+ ;; |
|
| 2325 |
+ (option-or-argument) |
|
| 2326 |
+ curcontext=${curcontext%:*:*}:docker-${words[-1]}:
|
|
| 2327 |
+ __docker_secret_subcommand && ret=0 |
|
| 2328 |
+ ;; |
|
| 2329 |
+ esac |
|
| 2330 |
+ ;; |
|
| 2314 | 2331 |
(service) |
| 2315 | 2332 |
local curcontext="$curcontext" state |
| 2316 | 2333 |
_arguments $(__docker_arguments) \ |