# invoke-rc.d(8) completion -*- shell-script -*- # # Copyright (C) 2004 Servilio Afre Puentes proc _invoke_rc_d { var cur = '', prev = '', words = '', cword = '' _init_completion || return var sysvdir = '', services = '', options = '', valid_options = '' [[ -d /etc/rc.d/init.d ]] && set sysvdir = '/etc/rc.d/init.d' \ || set sysvdir = '/etc/init.d' set services = '( '$( printf '%s ' $sysvdir/!(README*|*.sh|$_backup_glob) ) ) set services = '( '${services[@]#$sysvdir/} ) set options = '( '--help --quiet --force --try-anyway --disclose-deny --query \ --no-fallback ) if [[ ($cword -eq 1) || ("$prev" == --* ) ]] { set 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