about summary refs log tree commit diff
path: root/Completion/Linux/Type/_selinux_contexts
blob: bdad8e72b8aaae7cd021ebf246950844611dec58 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#autoload

local -a parts users roles types

zparseopts -E -D a:=types P:=users

if ! compset -S ':*'; then
  users+=( -qS : )
  roles+=( -qS : )
  [[ $(</sys/fs/selinux/mls) = 0 ]] 2>/dev/null || types+=( -qS : )
fi

parts=( users roles types )
while compset -P 1 '*:' && (( $+parts[1] )) ; do
  shift parts
done
if (( $+parts[1] )); then
  _selinux_$parts[1] ${(P)parts[1]}
else
  _message -e selinux-ranges 'selinux range'
fi