]> git.alrj.org Git - zsh.d.git/blob - functions/_dbus
Add completion function for the python dbus CLI
[zsh.d.git] / functions / _dbus
1 #compdef dbus
2
3 # Completion for dbus python client
4 # http://code.google.com/p/dbus-tools/source/browse/trunk/_dbus
5
6 local count="$#words"
7 local opts=0
8
9 for word in $words[2,-2] ; do
10   case $word in
11     -*)
12       (( opts += 1 ))
13       ;;
14     *)
15       break
16       ;;
17   esac
18 done
19
20 if (( opts == count - 2 )) ; then
21   if [[ $words[-1] = -* ]] ; then
22     _arguments -C \
23           {-a,--all}'[Equivalent to -e -s -t -u]' \
24           {-e,--empty}'[Also show empty services/objects]' \
25           {-h,--help}'[Print help]' \
26       {-s,--signals}'[Print signals]' \
27       {-t,--activatables}'[Also show activatables services]' \
28       {-u,--unnamed}'[Also show unnamed services]' \
29           {-y,--system-bus}'[Use system bus]'
30     return
31   fi
32 fi
33
34 case $((count - 2 - $opts)) in
35   0)
36     _message "service"
37     ;;
38   1)
39     _message "object"
40     ;;
41   2)
42     _message "method"
43     ;;
44   *)
45     _wanted file expl "`dbus -c $words[2,-2]`" _files
46     return
47 esac
48
49 compadd `dbus -c $words[2,-2]`
50
51 return