_upstart_comp_list(){
  COMPREPLY=()
  cur=${COMP_WORDS[COMP_CWORD]}
  if [ $COMP_CWORD -eq 1 ]; then
      COMPREPLY=( $(compgen -o filenames -W "$@" $cur) )
  fi
}

_upstart_complete() { _upstart_comp_list "$(initctl list 2>&1 | grep -E "$1" | cut -f2 -d ' ')"; }

_waiting(){ _upstart_complete "(waiting|instance)"; }
_running(){ _upstart_complete "(running|instance)"; }
_jobs(){ _upstart_comp_list "$(ls -1 /etc/event.d 2> /dev/null)"; }

complete -F _jobs status
complete -F _waiting start
complete -F _running stop
complete -F _running restart
