upstart und die fehlende bash tab completion

Was mich an meisten an upsatart, abgesehen davon das es schlecht zu Debuggen ist, gestört hat ist die fehlende bash tab completion.

Auf launchpad.net habe ich aber den passenden Burgreport gefunden und den dazugehörigen Patch, den man folgendermaßen verwenden kann:

sudo wget -O /etc/bash_completion.d/upstart https://launchpadlibrarian.net/40624366/upstart


Hier noch mal der Quellcode falls er eines Tages nicht mehr da ist wo er hingehört:

# Debian GNU/Linux start/stop/status(8) completion for upstart
# Copyright 2007 Michael Biebl 
# Copyright 2010 Daniel Hahler 
# License: GNU GPL v2 or later

_jobs()
{
	local cur jobs
    
	[ -r /etc/init/ ] || return 0

	COMPREPLY=()
	cur=${COMP_WORDS[COMP_CWORD]}
	jobs=$(for i in /etc/init/*.conf ; do basename "$i" .conf ; done)

	if [ $COMP_CWORD -eq 1 ]; then
		COMPREPLY=( $(compgen -o filenames -W "$jobs" $cur) )
	fi

	return 0
}
complete -F _jobs status
complete -F _jobs reload
complete -F _jobs restart

_waiting()
{
	local cur jobs
    
	[ -r /etc/init/ ] || return 0

	COMPREPLY=()
	cur=${COMP_WORDS[COMP_CWORD]}
	jobs=$(initctl list | grep -E "(waiting|instance)" | cut -f1 -d ' ')

	if [ $COMP_CWORD -eq 1 ]; then
		COMPREPLY=( $(compgen -o filenames -W "$jobs" $cur) )
	fi

	return 0
}
complete -F _waiting start

_running()
{
	local cur jobs
    
	[ -r /etc/init/ ] || return 0

	COMPREPLY=()
	cur=${COMP_WORDS[COMP_CWORD]}
	jobs=$(initctl list | grep -E "(running|instance)" | cut -f1 -d ' ')

	if [ $COMP_CWORD -eq 1 ]; then
		COMPREPLY=( $(compgen -o filenames -W "$jobs" $cur) )
	fi

	return 0
}
complete -F _running stop
# vim:ft=sh: