_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