[PATCH 5/5] adding completion to seadmin feature
Leonidas Da Silva Barbosa
leosilva at linux.vnet.ibm.com
Thu Nov 7 15:23:28 UTC 2013
Signed-off-by: Leonidas Da Silva Barbosa <leosilva at linux.vnet.ibm.com>
---
policycoreutils/sepolicy/sepolicy-bash-completion.sh | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/policycoreutils/sepolicy/sepolicy-bash-completion.sh b/policycoreutils/sepolicy/sepolicy-bash-completion.sh
index 779fd75..2b85ad9 100644
--- a/policycoreutils/sepolicy/sepolicy-bash-completion.sh
+++ b/policycoreutils/sepolicy/sepolicy-bash-completion.sh
@@ -60,6 +60,9 @@ __get_all_domain_types () {
__get_all_domains () {
seinfo -adomain -x 2>/dev/null | sed 's/_t$//g'
}
+__get_all_roles () {
+ seinfo -r 2>/dev/null | tail -n +3
+}
_sepolicy () {
local command=${COMP_WORDS[1]}
local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
@@ -74,6 +77,7 @@ _sepolicy () {
[MANPAGE]='manpage'
[NETWORK]='network'
[TRANSITION]='transition'
+ [ADMIN]='admin'
)
COMMONOPTS='-P --policy -h --help'
@@ -86,6 +90,7 @@ _sepolicy () {
[manpage]='-h --help -p --path -a -all -o --os -d --domain -w --web -r --root'
[network]='-h --help -d --domain -l --list -p --port -t --type '
[transition]='-h --help -s --source -t --target'
+ [admin]='-h --help -a --add -u --user -r --role -l --login -m --modify -d --delete -e --extend'
)
for ((i=0; $i <= $COMP_CWORD; i++)); do
@@ -189,7 +194,18 @@ _sepolicy () {
fi
COMPREPLY=( $(compgen -W '${OPTS[$verb]}' -- "$cur") )
return 0
- fi
+ elif [ "$verb" = "admin" ]; then
+ if [ "$prev" = "-u" -o "$prev" = "--user" ]; then
+ COMPREPLY=( $(compgen -W "$( __get_all_users ) " -- "$cur") )
+ return 0
+ fi
+ if [ "$prev" = "-r" -o "$prev" = "--role" ]; then
+ COMPREPLY=( $(compgen -W "$( __get_all_roles ) " -- "$cur") )
+ return 0
+ fi
+ COMPREPLY=( $(compgen -W '${OPTS[$verb]}' -- "$cur") )
+ return 0
+ fi
COMPREPLY=( $(compgen -W "$comps" -- "$cur") )
return 0
}
--
1.8.3.1
More information about the selinux
mailing list