author | Danek Duvall <danek.duvall@oracle.com> |
Thu, 17 Feb 2011 13:44:40 -0800 | |
changeset 93 | b579c7b1bb44 |
child 429 | 02007d525e89 |
permissions | -rw-r--r-- |
93
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
1 |
#compdef zfs |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
2 |
# Synced with the Nevada build 131 man page |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
3 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
4 |
_zfs() { |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
5 |
local context state line expl |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
6 |
typeset -A opt_args |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
7 |
local -a subcmds rw_properties rw_propnames ro_properties create_properties |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
8 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
9 |
subcmds=( |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
10 |
"create" "destroy" "clone" "promote" "rename" "snapshot" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
11 |
"rollback" "list" "set" "get" "inherit" "mount" "unmount" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
12 |
"share" "unshare" "send" "receive" "allow" "unallow" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
13 |
"upgrade" "userspace" "groupspace" "hold" "holds" "release" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
14 |
) |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
15 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
16 |
# TODO: userused@ and groupused@ could have more extensive handling |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
17 |
ro_properties=( |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
18 |
"name" "type" "creation" "used" "available" "referenced" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
19 |
"compressratio" "mounted" "origin" "usedbychildren" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
20 |
"usedbydataset" "usedbyrefreservation" "usedbysnapshots" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
21 |
"defer_destroy" "userused@" "userrefs" "groupused@" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
22 |
) |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
23 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
24 |
# TODO: Be cleverer about what values can be set. Is there any way to |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
25 |
# set the sorting for *size properties to false by default? |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
26 |
rw_properties=( |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
27 |
"aclinherit:value:(discard noallow restricted passthrough passthrough-x)" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
28 |
"aclmode:value:(discard groupmask passthrough)" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
29 |
"atime:value:(on off)" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
30 |
"canmount:value:(on off noauto)" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
31 |
"checksum:value:(on off fletcher2 fletcher4 sha256)" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
32 |
"compression:value:(on off lzjb gzip gzip-{1..9} zle)" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
33 |
"copies:value:(1 2 3)" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
34 |
"dedup:value:(on off verify sha256 sha256,verify)" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
35 |
"devices:value:(on off)" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
36 |
"exec:value:(on off)" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
37 |
"groupquota@:value:" # TODO: complete group=size|none |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
38 |
"logbias:value:(latency throughput)" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
39 |
"mlslabel:value:(none)" # TODO: list sensitivity labels |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
40 |
"mountpoint:path, 'legacy', or 'none':{if [[ -prefix /* ]]; then _path_files -/; else _wanted mountpoints expl 'mountpoint (type \"/\" to start completing paths)' compadd legacy none; fi}" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
41 |
"nbmand:value:(on off)" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
42 |
"primarycache:value:(all none metadata)" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
43 |
"quota:number or 'none':{if [[ -prefix [0-9]## ]]; then _message -e 'number'; elif [[ $PREFIX == quota= ]]; then _wanted none expl 'number or none' compadd none; else _wanted none expl 'quota' compadd none; fi}" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
44 |
"readonly:value:(on off)" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
45 |
"recordsize:value:(512 1K 2K 4K 8K 16K 32K 64K 128K)" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
46 |
"refquota:number or 'none':{if [[ -prefix [0-9]## ]]; then _message -e 'number'; elif [[ $PREFIX == refquota= ]]; then _wanted none expl 'number or none' compadd none; else _wanted none expl 'refquota' compadd none; fi}" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
47 |
"refreservation:number or 'none':{if [[ -prefix [0-9]## ]]; then _message -e 'number'; elif [[ $PREFIX == refreservation= ]]; then _wanted none expl 'number or none' compadd none; else _wanted none expl 'refreservation' compadd none; fi}" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
48 |
"reservation:value:{if [[ -prefix [0-9]## ]]; then _message -e 'number'; elif [[ $PREFIX == reservation= ]]; then _wanted none expl 'number or none' compadd none; else _wanted none expl 'reservation' compadd none; fi}" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
49 |
"secondarycache:value:(all none metadata)" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
50 |
"setuid:value:(on off)" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
51 |
"shareiscsi:value:(on off type=disk)" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
52 |
"sharenfs:value:(on off)" # or share(1M) options |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
53 |
"sharesmb:value:(on off)" # or sharemgr(1M) options |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
54 |
"snapdir:value:(hidden visible)" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
55 |
"userquota@:value:" # TODO: complete user=size|none |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
56 |
"version:value:(1 2 current)" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
57 |
"volsize:value:" # <size> |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
58 |
"vscan:value:(on off)" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
59 |
"xattr:value:(on off)" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
60 |
"zoned:value:(on off)" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
61 |
) |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
62 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
63 |
create_properties=( |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
64 |
$rw_properties |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
65 |
"casesensitivity:value:(sensitive insensitive mixed)" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
66 |
"normalization:value:(none formC formD formKC formKD)" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
67 |
"utf8only:value:(on off)" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
68 |
"volblocksize:value:(512 1K 2K 4K 8K 16K 32K 64K 128K)" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
69 |
) |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
70 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
71 |
delegatable_perms=( |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
72 |
"allow" "clone" "create" "destroy" "mount" "promote" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
73 |
"receive" "rename" "rollback" "send" "share" "snapshot" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
74 |
${create_properties%%:*} |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
75 |
) |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
76 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
77 |
rw_propnames=( ${rw_properties%%:*} ) |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
78 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
79 |
if [[ $service == "zfs" ]]; then |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
80 |
_arguments -C -A "-*" \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
81 |
'-\?[Help]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
82 |
'*::command:->subcmd' && return 0 |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
83 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
84 |
if (( CURRENT == 1 )); then |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
85 |
_wanted commands expl "zfs subcommand" compadd -a subcmds |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
86 |
return |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
87 |
fi |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
88 |
service="$words[1]" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
89 |
curcontext="${curcontext%:*}=$service:" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
90 |
fi |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
91 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
92 |
case $service in |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
93 |
("create") |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
94 |
_arguments -A "-*" \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
95 |
'-p[Create parent datasets]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
96 |
'-o[Set initial properties]:property:_values -s , "property" $create_properties' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
97 |
- set1 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
98 |
':filesystem:' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
99 |
- set2 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
100 |
'-s[Create sparse volume]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
101 |
'-b[Set volblocksize]:blocksize:' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
102 |
'-V[Set size]:size:' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
103 |
':volume:' |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
104 |
;; |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
105 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
106 |
("destroy") |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
107 |
_arguments -A "-*" \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
108 |
'-r[Recursively destroy all children]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
109 |
'-R[Recursively destroy all dependents]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
110 |
- set1 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
111 |
'-d[delete or mark deferred]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
112 |
':snapshot:_zfs_dataset -t snap' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
113 |
- set2 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
114 |
'-f[Force unmounts]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
115 |
':filesystem/volume/snapshot:_zfs_dataset -t fs -t vol' |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
116 |
;; |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
117 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
118 |
("snapshot") |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
119 |
_arguments -A "-*" \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
120 |
'-r[Recursively snapshot all descendant datasets]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
121 |
'-o[Set property]:property:_values -s , "property" $create_properties' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
122 |
':filesystem/volume:_zfs_dataset -t fs -t vol -S@' |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
123 |
;; |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
124 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
125 |
("rollback") |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
126 |
_arguments -A "-*" \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
127 |
'-r[Recursively destroy more recent snapshots]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
128 |
'-R[Recursively destroy more recent snapshots and clones]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
129 |
'-f[Force unmounts]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
130 |
':snapshot:_zfs_dataset -t snap' |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
131 |
;; |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
132 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
133 |
("clone") |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
134 |
# XXX needs to bail if there are no snapshots |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
135 |
_arguments -A "-*" \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
136 |
'-p[Create parent datasets]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
137 |
'-o[Set property]:property:_values -s , "property" $create_properties' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
138 |
':snapshot:_zfs_dataset -t snap' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
139 |
':filesystem/volume:' |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
140 |
;; |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
141 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
142 |
("promote") |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
143 |
# XXX complete only cloned filesystems |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
144 |
_arguments \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
145 |
':filesystem:_zfs_dataset -t fs' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
146 |
;; |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
147 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
148 |
("rename") |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
149 |
_arguments -A "-*" \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
150 |
- set1 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
151 |
'-p[Create parent datasets]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
152 |
':filesystem/volume/snapshot:_zfs_dataset' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
153 |
':filesystem/volume/snapshot:' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
154 |
- set2 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
155 |
'-r[Recursively rename snapshots of all descendent datasets]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
156 |
':snapshot:_zfs_dataset -t snap' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
157 |
':snapshot:' |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
158 |
;; |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
159 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
160 |
("list") |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
161 |
_arguments -A "-*" \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
162 |
'-r[Recursively display children]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
163 |
'-H[Scripting mode]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
164 |
'-d[Depth]:value:' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
165 |
'-o[Properties to list]:property:_values -s , "property" $ro_properties $rw_propnames' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
166 |
'*-s[Sort key (ascending)]:property:_values "property" $ro_properties $rw_propnames' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
167 |
'*-S[Sort key (descending)]:property:_values "property" $ro_properties $rw_propnames' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
168 |
'-t[Dataset types to list]:dataset type:_values -s , "dataset type" filesystem snapshot volume' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
169 |
'*:filesystem/volume/snapshot:_zfs_dataset' |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
170 |
;; |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
171 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
172 |
("set") |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
173 |
_arguments \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
174 |
':property:_values -s , "property" $rw_properties' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
175 |
'*:filesystem/volume:_zfs_dataset -t fs -t vol' |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
176 |
;; |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
177 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
178 |
("get") |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
179 |
_arguments -A "-*" \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
180 |
"-r[Recursively display children's properties]" \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
181 |
'-d[Depth]:value:' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
182 |
'-H[Scripting mode]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
183 |
'-p[Display numbers exactly]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
184 |
'-s[Specify sources]:source:_values -s , "source" local default inherited temporary none' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
185 |
'-o[Specify fields]:field:_values -s , "field" name property value source' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
186 |
':property:_values -s , "property" $ro_properties $rw_propnames all' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
187 |
'*:filesystem/volume/snapshot:_zfs_dataset' |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
188 |
;; |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
189 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
190 |
("inherit") |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
191 |
_arguments -A "-*" \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
192 |
'-r[Recursively inherit property for all children]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
193 |
'-S[Revert to received property value]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
194 |
':property:_values -s , "property" $ro_properties $rw_properties' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
195 |
'*:filesystem/volume:_zfs_dataset -t fs -t vol' |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
196 |
;; |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
197 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
198 |
("userspace"|"groupspace") |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
199 |
_arguments -A "-*" \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
200 |
'-n[Print numeric ID]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
201 |
'-i[Translate SID to POSIX ID]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
202 |
'-H[Tab-delimited output with no headers]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
203 |
'-p[Parseable mode]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
204 |
'-o[Properties to list]:property:_values -s , "property" type name used quota' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
205 |
'*-s[Sort key (ascending)]:property:_values "property" type name used quota' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
206 |
'*-S[Sort key (descending)]:property:_values "property" type name used quota' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
207 |
'-t[Types to list]:type:_values -s , "type" all posixuser smbuser posixgroup smbgroup' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
208 |
'*:filesystem/volume/snapshot:_zfs_dataset' |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
209 |
;; |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
210 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
211 |
("mount") |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
212 |
_arguments -A "-*" \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
213 |
'-o[Mount options]:mount options:_values -s , "option" {,no}{devices,exec,setuid} ro rw' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
214 |
'-O[Overlay mount]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
215 |
'-v[Report mount progress]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
216 |
- set1 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
217 |
':filesystem:_zfs_dataset -t fs' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
218 |
- set2 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
219 |
'-a[Mount all available ZFS filesystems]' |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
220 |
;; |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
221 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
222 |
("unmount") |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
223 |
_arguments -A "-*" \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
224 |
- set1 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
225 |
'-f[Force unmount]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
226 |
':filesystem:_zfs_dataset -t fs -t mtpt' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
227 |
- set2 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
228 |
'-a[Unmount all ZFS filesystems]' |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
229 |
;; |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
230 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
231 |
("share") |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
232 |
_arguments -A "-*" \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
233 |
- set1 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
234 |
'-a[Share all available ZFS filesystems]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
235 |
- set2 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
236 |
':filesystem:_zfs_dataset -t fs' |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
237 |
;; |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
238 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
239 |
("unshare") |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
240 |
_arguments -A "-*" \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
241 |
- set1 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
242 |
'-a[Unshare all shared ZFS filesystems]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
243 |
- set2 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
244 |
':filesystem:_zfs_dataset -t fs -t mtpt' |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
245 |
;; |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
246 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
247 |
("send") |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
248 |
_arguments -A "-*" \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
249 |
'-i[Generate an incremental stream]:snapshot:_zfs_dataset -t snap' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
250 |
'-D[Perform dedup processing]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
251 |
'-I[Generate an incremental stream with intermediary snapshots]:snapshot:_zfs_dataset -t snap' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
252 |
'-p[Send properties]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
253 |
'-R[Generate a replication stream package]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
254 |
'-v[Verbose]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
255 |
':snapshot:_zfs_dataset -t snap' |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
256 |
;; |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
257 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
258 |
("receive") |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
259 |
_arguments -A "-*" \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
260 |
'-v[Verbose]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
261 |
'-n[Do not receive the stream]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
262 |
'-F[Force a rollback if necessary]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
263 |
'-u[Filesystem is not mounted]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
264 |
- set1 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
265 |
':filesystem/volume/snapshot:_zfs_dataset' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
266 |
- set2 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
267 |
'-d[Set path prefix]:filesystem:_zfs_dataset -t fs' |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
268 |
;; |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
269 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
270 |
("allow") |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
271 |
_arguments -A "-*" \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
272 |
- set1 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
273 |
':filesystem/volume:_zfs_dataset -t fs -t vol' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
274 |
- set2 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
275 |
'(-g)-u[User]:user:_users' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
276 |
'(-u)-g[Group]:group:_groups' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
277 |
'-l[Allow for named dataset]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
278 |
'-d[Allow for descendent datasets]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
279 |
':permissions or sets:_values -s , "permission or set" $delegatable_perms' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
280 |
':filesystem/volume:_zfs_dataset -t fs -t vol' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
281 |
- set3 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
282 |
'-e[Everyone]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
283 |
'-l[Allow for named dataset]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
284 |
'-d[Allow for descendent datasets]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
285 |
':permissions or sets:_values -s , "permission or set" $delegatable_perms' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
286 |
':filesystem/volume:_zfs_dataset -t fs -t vol' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
287 |
- set4 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
288 |
'-c[Create-time permissions]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
289 |
':permissions or sets:_values -s , "permission or set" $delegatable_perms' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
290 |
':filesystem/volume:_zfs_dataset -t fs -t vol' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
291 |
- set5 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
292 |
'-s[Define or modify permission sets]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
293 |
':setname:' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
294 |
':permissions or sets:_values -s , "permission or set" $delegatable_perms' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
295 |
':filesystem/volume:_zfs_dataset -t fs -t vol' |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
296 |
;; |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
297 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
298 |
("unallow") |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
299 |
_arguments -A "-*" \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
300 |
'-r[Recursive removal]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
301 |
- set1 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
302 |
'-s[Remove permissions from or delete a permission set]:permission set:' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
303 |
':permissions or sets:_values -s , "permission or set" $delegatable_perms' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
304 |
':filesystem/volume:_zfs_dataset -t fs -t vol' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
305 |
- set2 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
306 |
'(-g)-u[User]:user:_users' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
307 |
'(-u)-g[Group]:group:_groups' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
308 |
'-l[Allow for named dataset]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
309 |
'-d[Allow for descendent datasets]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
310 |
':permissions or sets:_values -s , "permission or set" $delegatable_perms' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
311 |
':filesystem/volume:_zfs_dataset -t fs -t vol' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
312 |
- set3 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
313 |
'-e[Everyone]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
314 |
'-l[Allow for named dataset]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
315 |
'-d[Allow for descendent datasets]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
316 |
':permissions or sets:_values -s , "permission or set" $delegatable_perms' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
317 |
':filesystem/volume:_zfs_dataset -t fs -t vol' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
318 |
- set4 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
319 |
'-c[Create-time permissions]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
320 |
':permissions or sets:_values -s , "permission or set" $delegatable_perms' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
321 |
':filesystem/volume:_zfs_dataset -t fs -t vol' |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
322 |
;; |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
323 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
324 |
("upgrade") |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
325 |
_arguments -A "-*" \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
326 |
- set1 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
327 |
'-v[Verbose]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
328 |
- set2 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
329 |
'-a[Upgrade all filesystems on all pools]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
330 |
'-r[Upgrade descendent filesystems, too]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
331 |
'-V[Upgrade to specified version]:version:(1 2)' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
332 |
- set3 \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
333 |
'-r[Upgrade descendent filesystems, too]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
334 |
'-V[Upgrade to specified version]:version:(1 2)' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
335 |
':filesystem:_zfs_dataset -t fs' |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
336 |
;; |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
337 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
338 |
("hold") |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
339 |
_arguments -A "-*" \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
340 |
'-r[Apply hold recursively]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
341 |
':tag:' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
342 |
':snapshot:_zfs_dataset -t snap' |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
343 |
;; |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
344 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
345 |
("holds") |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
346 |
_arguments -A "-*" \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
347 |
'-r[List holds recursively]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
348 |
':snapshot:_zfs_dataset -t snap' |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
349 |
;; |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
350 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
351 |
("release") |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
352 |
_arguments -A "-*" \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
353 |
'-r[Release holds recursively]' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
354 |
':tag:' \ |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
355 |
':snapshot:_zfs_dataset -t snap' |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
356 |
;; |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
357 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
358 |
(*) |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
359 |
_message "unknown zfs subcommand: $service" |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
360 |
;; |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
361 |
esac |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
362 |
} |
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
363 |
|
b579c7b1bb44
7016731 move zsh from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff
changeset
|
364 |
_zfs "$@" |