#compdef dbus # Completion for dbus python client # http://code.google.com/p/dbus-tools/source/browse/trunk/_dbus local count="$#words" local opts=0 for word in $words[2,-2] ; do case $word in -*) (( opts += 1 )) ;; *) break ;; esac done if (( opts == count - 2 )) ; then if [[ $words[-1] = -* ]] ; then _arguments -C \ {-a,--all}'[Equivalent to -e -s -t -u]' \ {-e,--empty}'[Also show empty services/objects]' \ {-h,--help}'[Print help]' \ {-s,--signals}'[Print signals]' \ {-t,--activatables}'[Also show activatables services]' \ {-u,--unnamed}'[Also show unnamed services]' \ {-y,--system-bus}'[Use system bus]' return fi fi case $((count - 2 - $opts)) in 0) _message "service" ;; 1) _message "object" ;; 2) _message "method" ;; *) _wanted file expl "`dbus -c $words[2,-2]`" _files return esac compadd `dbus -c $words[2,-2]` return