]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
bash-completion: complete `--user` only for `runuser`, not for `su`
authorChristoph Anton Mitterer <mail@christoph.anton.mitterer.name>
Mon, 25 Nov 2024 01:35:34 +0000 (02:35 +0100)
committerKarel Zak <kzak@redhat.com>
Tue, 10 Dec 2024 09:55:53 +0000 (10:55 +0100)
Signed-off-by: Christoph Anton Mitterer <mail@christoph.anton.mitterer.name>
(cherry picked from commit 364f87a474ed9945e5b5527ebefe2bb15a721237)

bash-completion/su

index 913e445230a4a6b620c8fac1ccdafd085e01524f..6eba9ddd365155447f59939ef830b184ff002c7c 100644 (file)
@@ -1,9 +1,10 @@
 _su_module()
 {
-       local cur prev OPTS
+       local cur prev OPTS prog
        COMPREPLY=()
        cur="${COMP_WORDS[COMP_CWORD]}"
        prev="${COMP_WORDS[COMP_CWORD-1]}"
+       prog="${COMP_WORDS[0]}"
        case $prev in
                '-'|'-u'|'--user')
                        COMPREPLY=( $(compgen -u -- $cur) )
@@ -23,8 +24,7 @@ _su_module()
        esac
        case $cur in
                -*)
-                       OPTS="  --user
-                               --preserve-environment
+                       OPTS="  --preserve-environment
                                --whitelist-environment
                                --group
                                --supp-group
@@ -35,6 +35,10 @@ _su_module()
                                --shell
                                --help
                                --version"
+                       if [ "${prog}" = runuser ]; then
+                               OPTS="  ${OPTS}
+                                       --user"
+                       fi
                        COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
                        return 0
                        ;;