diff options
Diffstat (limited to 'completions/_su')
-rw-r--r-- | completions/_su | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/completions/_su b/completions/_su new file mode 100644 index 0000000..1a03c8f --- /dev/null +++ b/completions/_su @@ -0,0 +1,41 @@ +# bash completion for su(1) -*- shell-script -*- + +# Use of this file is deprecated on Linux. Upstream completion is +# available in util-linux >= 2.23, use that instead. + +if [[ $OSTYPE != *linux* ]]; then + complete -u su # default completion + return +fi + +_su() +{ # linux-specific completion + local cur prev words cword split + _init_completion -s || return + + case "$prev" in + -s | --shell) + _shells + return + ;; + -c | --command | --session-command) + local IFS=$'\n' + compopt -o filenames + COMPREPLY=($(compgen -d -c -- "$cur")) + return + ;; + esac + + $split && return + + if [[ $cur == -* ]]; then + COMPREPLY=($(compgen -W '$(_parse_help "$1" --help)' -- "$cur")) + [[ ${COMPREPLY-} == *= ]] && compopt -o nospace + return + fi + + COMPREPLY=($(compgen -u -- "$cur")) +} && + complete -F _su su + +# ex: filetype=sh |