From c9c004d700af23c238adef40a1e579d21c6c5765 Mon Sep 17 00:00:00 2001
From: Jessica Frazelle <jess@docker.com>
Date: Tue, 16 Sep 2014 11:46:24 -0700
Subject: [PATCH] Add exec to autocompletions

Docker-DCO-1.1-Signed-off-by: Jessica Frazelle <jess@docker.com> (github: jfrazelle)
---
 contrib/completion/bash/docker | 19 ++++++++++++++++---
 contrib/completion/zsh/_docker |  7 +++++++
 2 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/contrib/completion/bash/docker b/contrib/completion/bash/docker
index 13fd57ba12..33b92eb3d7 100755
--- a/contrib/completion/bash/docker
+++ b/contrib/completion/bash/docker
@@ -244,6 +244,18 @@ _docker_events()
 	esac
 }
 
+_docker_exec()
+{
+	case "$cur" in
+		-*)
+			COMPREPLY=( $( compgen -W "-d --detach -i --interactive -t --tty" -- "$cur" ) )
+			;;
+		*)
+			__docker_containers_running
+			;;
+	esac
+}
+
 _docker_export()
 {
 	local counter=$(__docker_pos_first_nonflag)
@@ -530,7 +542,7 @@ _docker_run()
 			esac
 			return
 			;;
-		--entrypoint|-h|--hostname|-m|--memory|-u|--user|-w|--workdir|-c|--cpu-shares|-n|--name|-p|--publish|--expose|--dns|--lxc-conf)
+		--entrypoint|-h|--hostname|-m|--memory|-u|--user|-w|--workdir|--cpuset|-c|--cpu-shares|-n|--name|-p|--publish|--expose|--dns|--lxc-conf)
 			return
 			;;
 		*)
@@ -539,10 +551,10 @@ _docker_run()
 
 	case "$cur" in
 		-*)
-			COMPREPLY=( $( compgen -W "--rm -d --detach -n --networking --privileged -P --publish-all -i --interactive -t --tty --cidfile --entrypoint -h --hostname -m --memory -u --user -w --workdir -c --cpu-shares --sig-proxy --name -a --attach -v --volume --link -e --env -p --publish --expose --dns --volumes-from --lxc-conf" -- "$cur" ) )
+			COMPREPLY=( $( compgen -W "--rm -d --detach -n --networking --privileged -P --publish-all -i --interactive -t --tty --cidfile --entrypoint -h --hostname -m --memory -u --user -w --workdir --cpuset -c --cpu-shares --sig-proxy --name -a --attach -v --volume --link -e --env -p --publish --expose --dns --volumes-from --lxc-conf" -- "$cur" ) )
 			;;
 		*)
-			local counter=$(__docker_pos_first_nonflag '--cidfile|--volumes-from|-v|--volume|-e|--env|--entrypoint|-h|--hostname|-m|--memory|-u|--user|-w|--workdir|-c|--cpu-shares|-n|--name|-a|--attach|--link|-p|--publish|--expose|--dns|--lxc-conf')
+			local counter=$(__docker_pos_first_nonflag '--cidfile|--volumes-from|-v|--volume|-e|--env|--entrypoint|-h|--hostname|-m|--memory|-u|--user|-w|--workdir|--cpuset|-c|--cpu-shares|-n|--name|-a|--attach|--link|-p|--publish|--expose|--dns|--lxc-conf')
 
 			if [ $cword -eq $counter ]; then
 				__docker_image_repos_and_tags_and_ids
@@ -660,6 +672,7 @@ _docker()
 			cp
 			diff
 			events
+			exec
 			export
 			history
 			images
diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker
index eab269684f..70c67e0391 100644
--- a/contrib/completion/zsh/_docker
+++ b/contrib/completion/zsh/_docker
@@ -227,6 +227,13 @@ __docker_subcommand () {
         (diff|export)
             _arguments '*:containers:__docker_containers'
             ;;
+        (exec)
+            _arguments \
+                '-d[Detached mode: leave the container running in the background]' \
+                '-i[Keep stdin open even if not attached]' \
+                '-t[Allocate a pseudo-tty]' \
+                ':containers:__docker_runningcontainers'
+            ;;
         (history)
             _arguments \
                 '--no-trunc[Do not truncate output]' \