diff options
Diffstat (limited to '')
-rw-r--r-- | bash-completion/su | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/bash-completion/su b/bash-completion/su new file mode 100644 index 0000000..3095050 --- /dev/null +++ b/bash-completion/su @@ -0,0 +1,48 @@ +_su_module() +{ + local cur prev OPTS + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" + case $prev in + '-'|'-u'|'--user') + COMPREPLY=( $(compgen -u -- $cur) ) + return 0 + ;; + '-g'|'--group'|'-G'|'--supp-group') + COMPREPLY=( $(compgen -g -- $cur) ) + return 0 + ;; + '-s'|'--shell') + COMPREPLY=( $(compgen -W "$(chsh -l)" -- $cur) ) + return 0 + ;; + '-h'|'--help'|'-V'|'--version') + return 0 + ;; + esac + case $cur in + -*) + OPTS=" --user + --preserve-environment + --whitelist-environment + --group + --supp-group + --login + --command + --session-command + --fast + --shell + --help + --version" + COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) ) + return 0 + ;; + esac + local IFS=$'\n' + compopt -o filenames + COMPREPLY=( $(compgen -f -- $cur) ) + return 0 +} +complete -F _su_module su +complete -F _su_module runuser |