summaryrefslogtreecommitdiffstats
path: root/bash-completion/setpriv
diff options
context:
space:
mode:
Diffstat (limited to 'bash-completion/setpriv')
-rw-r--r--bash-completion/setpriv21
1 files changed, 17 insertions, 4 deletions
diff --git a/bash-completion/setpriv b/bash-completion/setpriv
index bf4737a3a..1c67f8288 100644
--- a/bash-completion/setpriv
+++ b/bash-completion/setpriv
@@ -46,10 +46,23 @@ _setpriv_module()
return 0
;;
'--securebits')
- local SBITS
- SBITS="noroot noroot_locked no_setuid_fixup no_setuid_fixup_locked keep_caps_locked
- -noroot -noroot_locked -no_setuid_fixup -no_setuid_fixup_locked -keep_caps_locked"
- COMPREPLY=( $(compgen -W "$SBITS" -- $cur) )
+ local prefix realcur SBITS_ALL SBITS WORD
+ realcur="${cur##*,}"
+ prefix="${cur%$realcur}"
+ SBITS_ALL="
+ {+,-}keep_caps_locked
+ {+,-}noroot
+ {+,-}noroot_locked
+ {+,-}no_setuid_fixup
+ {+,-}no_setuid_fixup_locked
+ "
+ for WORD in $SBITS_ALL; do
+ if ! [[ $prefix == *"$WORD"* ]]; then
+ SBITS="$WORD ${SBITS:-""}"
+ fi
+ done
+ compopt -o nospace
+ COMPREPLY=( $(compgen -P "$prefix" -W "$SBITS" -S ',' -- $realcur) )
return 0
;;
'--selinux-label')