# invoke-rc.d(8) completion -*- shell-script -*- # # Copyright (C) 2004 Servilio Afre Puentes _invoke_rc_d() { local cur prev words cword _init_completion || return local sysvdir services options valid_options [[ -d /etc/rc.d/init.d ]] && sysvdir=/etc/rc.d/init.d \ || sysvdir=/etc/init.d services=( $( printf '%s ' $sysvdir/!(README*|*.sh|$_backup_glob) ) ) services=( ${services[@]#$sysvdir/} ) options=( --help --quiet --force --try-anyway --disclose-deny --query \ --no-fallback ) if [[ ($cword -eq 1) || ("$prev" == --* ) ]]; then valid_options=( $( \ tr " " "\n" <<<"${words[@]} ${options[@]}" \ | sed -ne "/$( sed "s/ /\\\\|/g" <<<"${options[@]}" )/p" \ | sort | uniq -u \ ) ) COMPREPLY=( $( compgen -W '${valid_options[@]} ${services[@]}' -- "$cur" ) ) elif [[ -x $sysvdir/$prev ]]; then COMPREPLY=( $( compgen -W '`sed -e "y/|/ /" \ -ne "s/^.*Usage:[ ]*[^ ]*[ ]*{*\([^}\"]*\).*$/\1/p" \ $sysvdir/$prev`' -- "$cur" ) ) else COMPREPLY=() fi return 0 } && complete -F _invoke_rc_d invoke-rc.d # ex: ts=4 sw=4 et filetype=sh