Browse code

Merge pull request #30943 from sdurrheimer/zsh-completion-checkpoint

Add zsh completion for 'docker checkpoint' commands

Brian Goff authored on 2017/02/15 05:58:45
Showing 1 changed files
... ...
@@ -494,6 +494,57 @@ __docker_complete_prune_filters() {
494 494
     return ret
495 495
 }
496 496
 
497
+# BO checkpoint
498
+
499
+__docker_checkpoint_commands() {
500
+    local -a _docker_checkpoint_subcommands
501
+    _docker_checkpoint_subcommands=(
502
+        "create:Create a checkpoint from a running container"
503
+        "ls:List checkpoints for a container"
504
+        "rm:Remove a checkpoint"
505
+    )
506
+    _describe -t docker-checkpoint-commands "docker checkpoint command" _docker_checkpoint_subcommands
507
+}
508
+
509
+__docker_checkpoint_subcommand() {
510
+    local -a _command_args opts_help
511
+    local expl help="--help"
512
+    integer ret=1
513
+
514
+    opts_help=("(: -)--help[Print usage]")
515
+
516
+    case "$words[1]" in
517
+        (create)
518
+            _arguments $(__docker_arguments) \
519
+                $opts_help \
520
+                "($help)--checkpoint-dir=[Use a custom checkpoint storage directory]:dir:_directories" \
521
+                "($help)--leave-running[Leave the container running after checkpoint]" \
522
+                "($help -)1:container:__docker_complete_running_containers" \
523
+                "($help -)2:checkpoint: " && ret=0
524
+            ;;
525
+        (ls|list)
526
+            _arguments $(__docker_arguments) \
527
+                $opts_help \
528
+                "($help)--checkpoint-dir=[Use a custom checkpoint storage directory]:dir:_directories" \
529
+                "($help -)1:container:__docker_complete_containers" && ret=0
530
+            ;;
531
+        (rm|remove)
532
+            _arguments $(__docker_arguments) \
533
+                $opts_help \
534
+                "($help)--checkpoint-dir=[Use a custom checkpoint storage directory]:dir:_directories" \
535
+                "($help -)1:container:__docker_complete_containers" \
536
+                "($help -)2:checkpoint: " && ret=0
537
+            ;;
538
+        (help)
539
+            _arguments $(__docker_arguments) ":subcommand:__docker_checkpoint_commands" && ret=0
540
+            ;;
541
+    esac
542
+
543
+    return ret
544
+}
545
+
546
+# EO checkpoint
547
+
497 548
 # BO container
498 549
 
499 550
 __docker_container_commands() {
... ...
@@ -2434,6 +2485,23 @@ __docker_subcommand() {
2434 2434
         (build|history|import|load|pull|push|save|tag)
2435 2435
             __docker_image_subcommand && ret=0
2436 2436
             ;;
2437
+        (checkpoint)
2438
+            local curcontext="$curcontext" state
2439
+            _arguments $(__docker_arguments) \
2440
+                $opts_help \
2441
+                "($help -): :->command" \
2442
+                "($help -)*:: :->option-or-argument" && ret=0
2443
+
2444
+            case $state in
2445
+                (command)
2446
+                    __docker_checkpoint_commands && ret=0
2447
+                    ;;
2448
+                (option-or-argument)
2449
+                    curcontext=${curcontext%:*:*}:docker-${words[-1]}:
2450
+                    __docker_checkpoint_subcommand && ret=0
2451
+                    ;;
2452
+            esac
2453
+            ;;
2437 2454
         (container)
2438 2455
             local curcontext="$curcontext" state
2439 2456
             _arguments $(__docker_arguments) \