• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# This file is part of systemd.
2#
3# Copyright 2011 Dan Walsh
4#
5# systemd is free software; you can redistribute it and/or modify it
6# under the terms of the GNU General Public License as published by
7# the Free Software Foundation; either version 2 of the License, or
8# (at your option) any later version.
9#
10# systemd is distributed in the hope that it will be useful, but
11# WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13# General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License
16# along with systemd; If not, see <http://www.gnu.org/licenses/>.
17
18__contains_word () {
19        local word=$1; shift
20        for w in $*; do [[ $w = $word ]] && return 0; done
21        return 1
22}
23
24__get_all_booleans () {
25    getsebool -a | cut -f1 -d' '
26}
27
28_setsebool () {
29        local command=${COMP_WORDS[1]}
30        local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
31        local verb comps
32
33	if   [ "$verb" = "" -a "$prev" = "setsebool" -o "$prev" = "-P" ]; then
34	        COMPREPLY=( $(compgen -W "-P $( __get_all_booleans ) " -- "$cur") )
35		return 0
36        fi
37        COMPREPLY=( $(compgen -W "0 1 -P" -- "$cur") )
38        return 0
39}
40
41_getsebool () {
42        local command=${COMP_WORDS[1]}
43        local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
44        local verb comps
45
46	if   [ "$verb" = "" -a "$prev" == "getsebool" ]; then
47	        COMPREPLY=( $(compgen -W "-a $( __get_all_booleans ) " -- "$cur") )
48		return 0
49        fi
50	if   [ "$verb" = "" -a "$prev" != "-a" ]; then
51	        COMPREPLY=( $(compgen -W "$( __get_all_booleans ) " -- "$cur") )
52		return 0
53        fi
54        return 0
55}
56
57complete -F _setsebool setsebool
58complete -F _getsebool getsebool
59