#compdef jls

local curcontext=$curcontext state state_descr line
typeset -A opt_args

_arguments -C -s -w -A '-*' : \
  "(-h -N -n -q -s -v *)-c[only check for the jail's existence]" \
  '-d[include dying jails]' \
  '(-c)-h[print header line]' \
  "(-c)-N[print jail's name instead of numeric ID]" \
  '(-c)-n[print parameters in ``name=value'\'\'' format]' \
  '(-c)-q[quote parameter value when it contains whitespace, quotes or empty string]' \
  '(-c)-s[print parameters suitable for passing to jail(8)]' \
  '(-c)-v[print a multiple-line summary per jail]' \
  '-j[the jid or name of the jail to list]:jail:_jails' \
  '*: :->parameters'

if [[ $state == parameters ]]; then
  _values -w -S ' ' 'jail parameter' ${${${(f)"$(sysctl -N security.jail.param)"}%.#}##security.jail.param.#}
fi
