]> git.alrj.org Git - zsh.d.git/commitdiff
Add completion function for the python dbus CLI
authorAmand Tihon <amand.tihon@iba-group.com>
Thu, 6 Dec 2012 10:15:46 +0000 (11:15 +0100)
committerAmand Tihon <amand.tihon@iba-group.com>
Thu, 6 Dec 2012 10:15:46 +0000 (11:15 +0100)
functions/_dbus [new file with mode: 0644]

diff --git a/functions/_dbus b/functions/_dbus
new file mode 100644 (file)
index 0000000..c07d7cc
--- /dev/null
@@ -0,0 +1,51 @@
+#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