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