blob: cf88c3dc1557e87895fe68b621d0fdaeb45b12ba (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
#compdef sysctl
local -a args
case $OSTYPE in
freebsd<10->.*)
args+=(
'-f+[specify file of name/value pairs to process first]:file:_files'
'-T[display only variables that are setable via loader]'
'-W[display only writable variables that are not statistical]'
)
;|
dragonfly*|freebsd<8->.*)
args+=( "-i[silently exit if variable doesn't exist]" )
;|
*freebsd<5->.*|freebsd4.[4-9]*)
local -a sysctlvars
sysctlvars=( $(_call_program sysctl-variables sysctl -aN) )
_arguments -s -S -A "-*" $args \
'(-a -o *)-A[equivalent to -o -a (for compatibility)]' \
'(*)-a[list all]' \
'-b[binary output]' \
'-d[print the description of the variable instead of its value]' \
'(-N -n)-e[separate name and value with =]' \
'-h[format output for human readability]' \
'(-n)-N[show only variable names]' \
'(-N)-n[show only variable values]' \
'(-x)-o[show opaques as well (values suppressed)]' \
'-q[suppress some warnings]' \
'(* -o)-X[equivalent to -x -a (for compatibility)]' \
'(-o)-x[show opaques as well (entire values)]' \
'(-a)*:sysctl variable:_multi_parts -i . sysctlvars'
;;
freebsd[0-4].*|darwin*|dragonfly*)
: ${(A)_cache_sysctlvars:=${${$(sysctl -A 2>/dev/null):#[^a-z]*}%%:*}}
_arguments -s -A "-*" $args \
'(-w -X *)-a[list all]' \
'(-w -X *)-A[show all opaques (values suppressed)]' \
'(-w)-b[binary output]' \
'(-w)-n[show only variable values]' \
'(-a -A -b -n -X)-w[write mode]' \
'(-a -A -w *)-X[show all opaques (entire values)]' \
'(-a -A -X)*:sysctl variable:_multi_parts ${words[(r)-w]:+-S=} -i . _cache_sysctlvars'
;;
linux*)
_arguments -A "-*" \
'-n[show only variable values]' \
'(-n -p -a -A)-w[write mode]' \
'(-n -w -a -A *)-p[specify file to load sysctl settings from]:file:_files' \
'(-n -w -p -A *)-a[list all]' \
'(-n -w -p -a *)-A[list all in table form]' \
'(-n -p -a -A)*:sysctl variable:_files -W /proc/sys'
;;
openbsd*)
: ${(A)_cache_sysctlvars:=${${${(f)"$(sysctl -a 2>/dev/null)"}%%=*}:# *}}
_arguments -S -s -A "-*" \
'(-A -q *)-a[list all string and integer variables]' \
'(-a -q *)-A[list all known variables]' \
'-n[show only values]' \
'(-a -A)-q[suppress all output when setting a variable]' \
'(-a -A)*:sysctl variable:_multi_parts -i -S = -q . _cache_sysctlvars'
;;
*)
_default
;;
esac
|