/usr/share/zsh/site-functions/_draai is in draai 20131212-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | #compdef draai
# This file is maintained at http://git.mdcc.cx/draai
# Heavily based upon /usr/share/zsh-beta/4.3.2-dev-1/functions/Completion/Unix/_mpc
# See Chapter 6: Completion in "A User's Guide to the Z-Shell" by Peter Stephenson
# at http://zsh.dotsrc.org/Guide/zshguide06.html#l144
# Copyright: © 1992-2000 Paul Falstad, Richard Coleman, Zoltán Hidvégi,
#  Andrew Main, Peter Stephenson, Sven Wischnowsky, and others.
#
# Permission is hereby granted, without written agreement and without
# licence or royalty fees, to use, copy, modify, and distribute this
# software and to distribute modified versions of this software for any
# purpose, provided that the above copyright notice and the following
# two paragraphs appear in all copies of this software.
# .
# In no event shall the Zsh Development Group be liable to any party for
# direct, indirect, special, incidental, or consequential damages arising out
# of the use of this software and its documentation, even if and the Zsh
# Development Group have been advised of the possibility of such damage.
# .
# The Zsh Development Group specifically disclaim any warranties, including,
# but not limited to, the implied warranties of merchantability and fitness
# for a particular purpose.  The software provided hereunder is on an "as is"
# basis, and the Zsh Development Group have no obligation to provide
# maintenance, support, updates, enhancements, or modifications.
# To be used by zsh when completing from draai<tab>
_draai_command() {
  local draai_cmds
  draai_cmds=(
    crescendo:"Play louder. "
    delete:"Delete track(s) from current playlist. Last arguments should be _positions_ of tracks to be removed, not filename.  If no position is given, deletes upcoming track from playlist. "
    diminuendo:"Play softer. "
    draai:"Play music: the files given as args and playlists passed via --playlist. "
    fastforward:"Seek forward in current track. "
    guestlist:"Reschedule listed tracknumbers as upcoming tracks. Last arguments should be the positions of tracks to be put on the guestlist, not filenames. "
    harder:"Play louder. "
    init:"Start a bunch of X terminals setting up some draai jobs: tail, logtail, watch, syslog, ... "
    insert:"Add file(s) (given either as args or on stdin) to playlist and schedule it as upcoming track. You probably want to have 'draai insert' read from a pipe fed by 'draai search'. "
    list:"List current playlist. "
    logtail:"Run tail(1) on system log file. "
    move:"Move tracknumber to tracknumber given as last argument. "
    osjittisstil:"Run this if unwanted silence pops up during a playing session (for now, it runs draai --sloppy skip). "
    peek:"Show status of current song, and show upcoming $peek FIXME tracks. "
    quit:"quit "
    search:"Search for substrings in all song tag types (artist, title, comment, filename, ...).  Similar to 'mpc search any <query>'.  You'll typically want to pipe this commands output to e.g. 'draai insert'. "
    skip:"Skip this track, start playing the next one now. "
    syslog:"Send raw information from tail to syslog.  You likely want to run "draai syslog" in the background. "
    tail:"Print information about track when it starts playing, similar to tail -f on a logfile. "
    unguestlist:"Reschedule listed tracknumbers to end of playlist. "
    watch:"Run watch(1) on "draai peek". "
    zachter:"Play softer. "
)
#   draai:"play music (now or later)"
#   init:"start a bunch of x terminals setting up some draai jobs"
#   list:"list current playlist"
#   guestlist:"reschedule listed tracknumbers as upcoming tracks"
#   unguestlist:"reschedule listed tracknumbers to end of playlist"
#   delete:"delete track(s) from current playlist"
#   fastforward:"seek forward in current track"
#   skip:"skip this track, start playing the next one now"
#   osjittisstil:"run this if unwanted silence pops up during a playing session"
#   resume:"start playing: abort pause"
#   unpause:"start playing: abort pause"
#   pause:"pause playing"
#   quit:"quit (now or later)"
#   tail:"print information about track when it starts playing, similar to tail -f on a logfile (see init)"
#   logtail:"run tail on syslog (see init)"
#   peek:"show status of current song, and upcoming tracks (see init)"
#   syslog:"sent raw information from tail to syslog (see init)"
# )
  if (( CURRENT == 1 )); then
    _describe -t command "draai commands" draai_cmds
  else
    local curcontext="$curcontext"
  fi
  local cmd=$words[1]
  local curcontext="${curcontext%:*}:draai-${cmd}"
  _call_function ret _draai_$cmd
}
# based upon _mpc_helper_files
_draai_draai() {
  local -U list expl
  if [[ $words[CURRENT] != */* ]]; then
    list=( ${${(f)"$(mpc listall)"}%%/*})
    _wanted files expl file compadd -qS/ -a list
  else
    list=(${(f)"$(mpc tab $words[CURRENT])"})
    _wanted files expl file _multi_parts / list
  fi
}
# based upon _mpc_helper_playlists
_draai_playlist() {
  local list expl
  list=($(mpc lsplaylists))
  _wanted list expl playlist compadd $expl -a list
}
_arguments \
  '--debug[Be very verbose. ]' \
  '--noshuffle[Do not shuffle tracks and leave random mode untouched (default is: do shuffle and disable random mode).  See also the script dr_unsort. ]' \
  '--playlist[Playlist file; option can be supplied more than once.  To be used with command "draai". ]' \
  '--raw[Print raw stuff, suitable for postprocessing (if combined with tail, peek or list). ]' \
  '--sloppy[Do not try hard to make everything sound smooth.  If combined with skip: risk a squeak on old hardware. ]' \
  '--time[If combined with commands quit or draai: time at which to quit or start. ]' \
   '*::draai command:_draai_command'
#  '--version[show program version number and exit]' \
#  '--help[show help message and exit]' \
#  '--debug[be very verbose]' \
#  '--noshuffle[do not shuffle tracks]' \
#  '--playlist[playlist file]:playlist:_draai_playlist' \
#  '--time[if combined with quit or draai: time at which to quit or start]:time' \
#  '--raw[if combined with tail: print raw stuff]' \
#  '--license[show license and exit]' \
#  '*::draai command:_draai_command'
 |