#autoload
local -a type typearg list
zparseopts -D -E -a type t+:
[[ -n $type[(r)fs] ]] && typearg=( filesystem )
[[ -n $type[(r)vol] ]] && typearg=( $typearg volume )
[[ -n $type[(r)snap] ]] && typearg=( $typearg snapshot )
[[ -n $typearg ]] && typearg=( -t ${(j:,:)typearg} )
datasetlist=( ${="$(zfs list -H -o name $typearg)":#no datasets available} )
expl_type=${typearg[2,-1]//,/\/}
if [[ -n $type[(r)mtpt] ]]; then
mlist=( ${="$(zfs list -H -o mountpoint $typearg)":#no mountpoints available} )
datasetlist=( $datasetlist $mlist )
expl_type="$expl_type/mountpoint"
fi
# compadd "$@" - $list
_wanted dataset expl "$expl_type" _multi_parts "$@" / datasetlist
Copyright 2K16 - 2K18 Indonesian Hacker Rulez