summaryrefslogtreecommitdiffstats
path: root/bash-completion/setpriv
diff options
context:
space:
mode:
authorKarel Zak2013-04-05 14:58:07 +0200
committerKarel Zak2013-04-05 14:58:07 +0200
commit20da58084a68b118b15fa01228192463b61fa28f (patch)
tree07beea113d5a68749264ad59e4d17fbc4bf9fe1d /bash-completion/setpriv
parentMerge branch 'shell-completion' of git://github.com/kerolasa/lelux-utiliteetit (diff)
downloadkernel-qcow2-util-linux-20da58084a68b118b15fa01228192463b61fa28f.tar.gz
kernel-qcow2-util-linux-20da58084a68b118b15fa01228192463b61fa28f.tar.xz
kernel-qcow2-util-linux-20da58084a68b118b15fa01228192463b61fa28f.zip
bash-completion: rename shell-completion -> bash-completion
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'bash-completion/setpriv')
-rw-r--r--bash-completion/setpriv82
1 files changed, 82 insertions, 0 deletions
diff --git a/bash-completion/setpriv b/bash-completion/setpriv
new file mode 100644
index 000000000..b05affe72
--- /dev/null
+++ b/bash-completion/setpriv
@@ -0,0 +1,82 @@
+_setpriv_module()
+{
+ local cur prev OPTS
+ COMPREPLY=()
+ cur="${COMP_WORDS[COMP_CWORD]}"
+ prev="${COMP_WORDS[COMP_CWORD-1]}"
+ case $prev in
+ '--inh-caps'|'--bounding-set')
+ # FIXME: how to append to a string with compgen?
+ local INHERIT
+ INHERIT=$(setpriv --list-caps| awk '{print $1, "-" $1}')
+ compopt -o nospace
+ COMPREPLY=( $(compgen -W "all $INHERIT" -S ',' -- $cur) )
+ return 0
+ ;;
+ '--ruid'|'--euid'|'--reuid')
+ local UIDS
+ UIDS=$(getent passwd | awk -F: '{print $3}')
+ COMPREPLY=( $(compgen -W "$UIDS" -- $cur) )
+ return 0
+ ;;
+ '--rgid'|'--egid'|'--regid')
+ local GIDS
+ GIDS=$(getent group | awk -F: '{print $3}')
+ COMPREPLY=( $(compgen -W "$GIDS" -- $cur) )
+ return 0
+ ;;
+ '--groups')
+ # FIXME: how to append to a string with compgen?
+ local GIDS
+ GIDS=$(getent group | awk -F: '{print $3}')
+ compopt -o nospace
+ COMPREPLY=( $(compgen -W "$GIDS" -S ',' -- $cur) )
+ 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) )
+ return 0
+ ;;
+ '--selinux-label')
+ # FIXME: how to list selinux labels?
+ COMPREPLY=( $(compgen -W "label" -- $cur) )
+ return 0
+ ;;
+ '--apparmor-profile')
+ # FIXME: how to list apparmor profiles?
+ COMPREPLY=( $(compgen -W "profile" -- $cur) )
+ return 0
+ ;;
+ esac
+ case $cur in
+ -*)
+ OPTS="-d --dump
+ --nnp --no-new-privs
+ --inh-caps
+ --bounding-set
+ --ruid
+ --euid
+ --rgid
+ --egid
+ --reuid
+ --regid
+ --clear-groupsclear
+ --keep-groupskeep
+ --groups
+ --securebits
+ --selinux-label
+ --apparmor-profile
+ -h --help
+ -V --version"
+ COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
+ return 0
+ ;;
+ esac
+ compopt -o bashdefault
+ COMPREPLY=( $(compgen -c -- $cur) )
+ return 0
+}
+complete -F _setpriv_module setpriv