summaryrefslogtreecommitdiffstats
path: root/shell-completion/setpriv
diff options
context:
space:
mode:
authorSami Kerola2013-03-24 18:19:09 +0100
committerSami Kerola2013-04-01 18:41:55 +0200
commitc6f8c3f5cec47bb71b59cdf9a8d8aaf98055caf6 (patch)
tree4334bbff1f33efaec233374ccb8b0a23f935f8cd /shell-completion/setpriv
parentbash-completion: schedutils (diff)
downloadkernel-qcow2-util-linux-c6f8c3f5cec47bb71b59cdf9a8d8aaf98055caf6.tar.gz
kernel-qcow2-util-linux-c6f8c3f5cec47bb71b59cdf9a8d8aaf98055caf6.tar.xz
kernel-qcow2-util-linux-c6f8c3f5cec47bb71b59cdf9a8d8aaf98055caf6.zip
bash-completion: sys-utils
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Diffstat (limited to 'shell-completion/setpriv')
-rw-r--r--shell-completion/setpriv82
1 files changed, 82 insertions, 0 deletions
diff --git a/shell-completion/setpriv b/shell-completion/setpriv
new file mode 100644
index 000000000..b05affe72
--- /dev/null
+++ b/shell-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