Blame | Last modification | View Log | RSS feed
# service(8) and /etc/init.d/* completion# This completes on a list of all available service scripts for the# 'service' command and/or the SysV init.d directory, followed by# that script's available commands#{ have service || [ -d /etc/init.d/ ]; } &&_service(){local cur prev sysvdirCOMPREPLY=()_get_comp_words_by_ref cur prev# don't complete for things like killall, ssh and mysql if it's# the standalone command, rather than the init script[[ ${COMP_WORDS[0]} != @(*init.d/!(functions|~)|?(*/)service) ]] && return 0# don't complete past 2nd token[ $COMP_CWORD -gt 2 ] && return 0if [[ $COMP_CWORD -eq 1 && $prev == ?(*/)service ]]; then_serviceselse[ -d /etc/rc.d/init.d ] && \sysvdir=/etc/rc.d/init.d || sysvdir=/etc/init.dCOMPREPLY=( $( compgen -W '`sed -e "y/|/ /" \-ne "s/^.*\(U\|msg_u\)sage.*{\(.*\)}.*$/\2/p" \$sysvdir/${prev##*/} 2>/dev/null`' -- "$cur" ) )fireturn 0} &&complete -F _service servicefor svc in /etc/init.d/*; do[ ! -x "$svc" ] || complete -p "${svc##*/}" &>/dev/null || \complete -F _service -o default "${svc##*/}"doneunset svc# Local variables:# mode: shell-script# sh-basic-offset: 4# sh-indent-comment: t# indent-tabs-mode: nil# End:# ex: ts=4 sw=4 et filetype=sh