diff options
Diffstat (limited to 'bash-completion')
-rw-r--r-- | bash-completion/setpriv | 21 |
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') |