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: