/
githubmirror
/
bash-completion
Обзор
Документация
Войти
/
githubmirror
/
bash-completion
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
1.2
contrib/service
45 строк
1 KB
Freddy Vulto
Merge branch 'use-_get_comp_words_by_ref'
11 июн 2010, 01:51
11 июн 2010, 01:51
94372b2
Код
Авторство
О чём код?
# 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 sysvdir COMPREPLY=() _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 0 [ -d /etc/rc.d/init.d ] && sysvdir=/etc/rc.d/init.d || sysvdir=/etc/init.d if [[ $COMP_CWORD -eq 1 ]] && [[ $prev == "service" ]]; then _services else COMPREPLY=( $( compgen -W '`sed -e "y/|/ /" \ -ne "s/^.*\(U\|msg_u\)sage.*{\(.*\)}.*$/\2/p" \ $sysvdir/${prev##*/} 2>/dev/null`' -- "$cur" ) ) fi return 0 } && complete -F _service service [ -d /etc/init.d/ ] && complete -F _service -o default \ $(for i in /etc/init.d/*; do complete -p ${i##*/} &>/dev/null || printf '%s\n' ${i##*/}; done) # 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