mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-11-04 07:21:06 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			66 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
#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*)
 | 
						|
    args+=( "-i[silently exit if variable doesn't exist]" )
 | 
						|
  ;|
 | 
						|
  freebsd*)
 | 
						|
    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'
 | 
						|
  ;;
 | 
						|
  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
 |