about summary refs log tree commit diff
path: root/Completion/Darwin/Command/_nvram
blob: 8853b0bee1dd64de7ebb8faf07c4ec0f15e11cd9 (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
#compdef nvram

local ret=1
local -a context line state state_descr tmp
local -A opt_args val_args

# Note: -x can only be used with -f/-p, but must be used first to have effect
_arguments -s : \
  '(: -)-c[delete all NVRAM variables]' \
  '(: -)-d[delete specified NVRAM variable]: :->variables-ro' \
  '(: -)-f[set NVRAM variables from file]: :_files' \
  '(: -)-p[print all NVRAM variables]' \
  '(-c -d)-x[use XML format for input and output]' \
  '(-)*: :->variables-rw' \
&& ret=0

[[ $state == variables-* ]] && {
  tmp=( ${${(f)"$( _call_program variables $words[1] -p )"}%%[[:space:]]*} )

  [[ $state == variables-rw ]] &&
  tmp=( ${^tmp}'::NVRAM variable value' )

  if (( $#tmp )); then
    _values -w 'NVRAM variable' $tmp && ret=0
  else
    _message 'NVRAM variable' && ret=0
  fi
}

return ret