Add zsh completion for 'docker events --filter' values
@@ -387,6 +387,60 @@ __docker_complete_images_filters() {
return ret
}
+__docker_complete_events_filter() {
+ [[ $PREFIX = -* ]] && return 1
+ integer ret=1
+ declare -a opts
+
+ opts=('container' 'daemon' 'event' 'image' 'label' 'network' 'type' 'volume')
+
+ if compset -P '*='; then
+ case "${${words[-1]%=*}#*=}" in
+ (container)
+ __docker_containers && ret=0
+ ;;
+ (daemon)
+ emulate -L zsh
+ setopt extendedglob
+ local -a daemon_opts
+ daemon_opts=(
+ ${(f)${${"$(_call_program commands docker $docker_options info)"##*$'\n'Name: }%%$'\n'^ *}}
+ ${${(f)${${"$(_call_program commands docker $docker_options info)"##*$'\n'ID: }%%$'\n'^ *}}//:/\\:}
+ )
+ _describe -t daemon-filter-opts "daemon filter options" daemon_opts && ret=0
+ ;;
+ (event)
+ local -a event_opts
+ event_opts=('attach' 'commit' 'connect' 'copy' 'create' 'delete' 'destroy' 'detach' 'die' 'disconnect' 'exec_create' 'exec_detach'
+ 'exec_start' 'export' 'import' 'kill' 'mount' 'oom' 'pause' 'pull' 'push' 'reload' 'rename' 'resize' 'restart' 'start' 'stop' 'tag'
+ 'top' 'unmount' 'unpause' 'untag' 'update')
+ _describe -t event-filter-opts "event filter options" event_opts && ret=0
+ ;;
+ (image)
+ __docker_images && ret=0
+ ;;
+ (network)
+ __docker_networks && ret=0
+ ;;
+ (type)
+ local -a type_opts
+ type_opts=('container' 'daemon' 'image' 'network' 'volume')
+ _describe -t type-filter-opts "type filter options" type_opts && ret=0
+ ;;
+ (volume)
+ __docker_volumes && ret=0
+ ;;
+ *)
+ _message 'value' && ret=0
+ ;;
+ esac
+ else
+ _describe -t filter-opts "filter options" opts -qS "=" && ret=0
+ fi
+
+ return ret
+}
+
__docker_network_complete_ls_filters() {
[[ $PREFIX = -* ]] && return 1
integer ret=1
@@ -961,7 +1015,7 @@ __docker_subcommand() {
(events)
_arguments $(__docker_arguments) \
$opts_help \
- "($help)*"{-f=,--filter=}"[Filter values]:filter: " \
+ "($help)*"{-f=,--filter=}"[Filter values]:filter:__docker_complete_events_filter" \
"($help)--since=[Events created since this timestamp]:timestamp: " \
"($help)--until=[Events created until this timestamp]:timestamp: " && ret=0
;;
