summaryrefslogtreecommitdiff
path: root/Completion/Unix/Command/_zpool
diff options
context:
space:
mode:
authorOliver Kiddle <opk@zsh.org>2021-12-29 00:22:33 +0100
committerOliver Kiddle <opk@zsh.org>2021-12-29 00:22:33 +0100
commit85bf9740a01e168b7b814469892d97fdabc67144 (patch)
treede06c52991f7a59650041b22d7e136321bbabcac /Completion/Unix/Command/_zpool
parentd82604843bf2b743e04666d4644dd109831252f7 (diff)
downloadzsh-85bf9740a01e168b7b814469892d97fdabc67144.tar.gz
zsh-85bf9740a01e168b7b814469892d97fdabc67144.zip
49668: update zfs completion
Diffstat (limited to 'Completion/Unix/Command/_zpool')
-rw-r--r--Completion/Unix/Command/_zpool311
1 files changed, 0 insertions, 311 deletions
diff --git a/Completion/Unix/Command/_zpool b/Completion/Unix/Command/_zpool
deleted file mode 100644
index d9c2caa52..000000000
--- a/Completion/Unix/Command/_zpool
+++ /dev/null
@@ -1,311 +0,0 @@
-#compdef zpool
-# Synced with the S11U1 man page
-
-_zpool() {
- local context state line expl implementation
- local -a subcmds fields ro_props rw_props versions create_properties_dataset
-
- _pick_variant -r implementation -c 'zpool upgrade -v' openzfs='This system supports ZFS pool feature flags' solaris
-
- subcmds=(
- create destroy add remove list iostat status online
- offline clear attach detach replace scrub import export
- upgrade history get set split help
- )
-
- if [[ $implementation = openzfs ]] && [[ $OSTYPE != solaris* ]]; then
- subcmds+=( labelclear initialize )
- fi
-
- versions=(
- ${${${(M)"${(f)$(_call_program versions zpool upgrade -v)}":#[[:space:]]#<->*}##[[:space:]]}%%[[:space:]]*}
- )
-
- ro_props=(
- "all[All properties]"
- "allocated[Space allocated]"
- "capacity[Space used (percentage)]"
- "dedupratio[Deduplication ratio]"
- "free[Space unallocated]"
- "guid[Unique identifier]"
- "health[Health status]"
- "size[Total size]"
- )
-
- rw_props=(
- "altroot[Alternate root directory]:value:"
- "autoexpand[Automatic pool expansion]:value:(on off)"
- "autoreplace[Automatic device replacement]:value:(on off)"
- "bootfs[Default bootable dataset]:value:"
- "cachefile[Pool configuration cache file location]:value:"
- "dedupditto[Threshold for number of copies]:value:"
- "delegation[Delegated administration]:value:(on off)"
- "failmode[Failure-mode behavior]:value:(wait continue panic)"
- "listshares[Show shares in 'zfs list']:value:(on off)"
- "listsnaps[Show snapshots in 'zfs list']:value:(on off)"
- "readonly[Controls whether the pool can be modified]:value:(on off)"
- "version[Pool version]:version:($versions)"
- )
-
- fields=( ${ro_props%%:*} ${rw_props%%:*} )
-
- create_properties_dataset=(
- "aclinherit:value:(discard noallow restricted passthrough passthrough-x)"
- "aclmode:value:(discard mask passthrough)"
- "atime:value:(on off)"
- "canmount:value:(on off noauto)"
- "checksum:value:(on off fletcher2 fletcher4 sha256 sha256+mac)"
- "compression:value:(on off lzjb gzip gzip-{1..9} zle)"
- "copies:value:(1 2 3)"
- "dedup:value:(on off verify sha256 sha256,verify)"
- "devices:value:(on off)"
- "encryption:value:(off on aes128-ccm aes-192-ccm aes-256-ccm aes-128-gcm aes-192-gcm aes-256-gcm)"
- "exec:value:(on off)"
- "groupquota@:value:" # TODO: complete group=size|none
- "keysource:value:_zfs_keysource_props"
- "logbias:value:(latency throughput)"
- "mlslabel:value:(none)" # TODO: list sensitivity labels
- "mountpoint:path, 'legacy', or 'none':{if [[ -prefix /* ]]; then _path_files -/; else _wanted mountpoints expl 'mountpoint (type \"/\" to start completing paths)' compadd legacy none; fi}"
- "nbmand:value:(on off)"
- "primarycache:value:(all none metadata)"
- "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}"
- "readonly:value:(on off)"
- "recordsize:value:(512 1K 2K 4K 8K 16K 32K 64K 128K 256K 512K 1M)"
- "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}"
- "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}"
- "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}"
- "rstchown:value:(on off)"
- "secondarycache:value:(all none metadata)"
- "setuid:value:(on off)"
- "shadow:value:" # TODO: complete URI|none
- "share:share properties:"
- "sharenfs:value:(on off)"
- "sharesmb:value:(on off)"
- "snapdir:value:(hidden visible)"
- "sync:value:(standard always disabled)"
- "userquota@:value:" # TODO: complete user=size|none
- "version:value:(1 2 3 4 current)"
- "volsize:value:" # <size>
- "vscan:value:(on off)"
- "xattr:value:(on off)"
- "zoned:value:(on off)"
- )
-
- if [[ $service == "zpool" ]]; then
- _arguments -C \
- '-\?[show help information]' \
- '1:subcommand:compadd -a subcmds' \
- '*:: :->subcmd' && return
-
- service="$words[1]"
- curcontext="${curcontext%:*}-$service:"
- fi
-
- case $service in
- (help)
- _arguments -A "-*" \
- - set1 \
- ':command/property:($subcmds ${fields%%\[*} properties)' \
- - set2 \
- '-l[Display property information]' \
- ': :(properties)'
- ;;
-
- (clear)
- _arguments -A "-*" \
- '-F[Discard transactions to allow pool opening]' \
- '-f[Ignore fmadm acquit and fmadm repair failures]' \
- '-n[With -F, check if discarding transactions would work]' \
- ':pool name:_zfs_pool' \
- '*:virtual device:_files'
- ;;
-
- (create)
- # TODO: investigate better vdev handling
- _arguments -A "-*" \
- '-B[Create EFI boot partition on whole disks]' \
- '-o[Set pool property at creation time]:property:_values -s , "property" $rw_props' \
- '-O[Set dataset property at creation time]:property:_values -s , "property" $create_properties_dataset' \
- '-f[Force use of in-use devices]' \
- '-l[Display configuration in /dev/chassis location form]' \
- '-n[Display configuration without creating pool]' \
- '-R[Use alternate root]:alternate root:_files -/' \
- '-m[Set mountpoint for root dataset]:mountpoint:' \
- ':pool name:' \
- '*:virtual device:_files'
- ;;
-
- (destroy)
- _arguments -A "-*" \
- '-f[Force active datasets to be unmounted]' \
- ':pool name:_zfs_pool'
- ;;
-
- (add)
- _arguments -A "-*" \
- '-f[Force use of in-use devices]' \
- '-l[Display configuration in /dev/chassis location form]' \
- '-n[Display configuration without modifying pool]' \
- ':pool name:_zfs_pool' \
- '*:virtual device:_files'
- ;;
-
- (list)
- _arguments \
- '-H[Scripted mode]' \
- '-T[timestamp]:value:(u d)' \
- '-o[Fields to list]:field:_values -s , "field" $fields' \
- '::pool name:_zfs_pool'
- ;;
-
- (initialize)
- _arguments -A "-*" \
- '(-c --cancel)'{-c,--cancel}'[cancel initializing on specified devices]' \
- '(-s --suspend)'{-s,--suspend}'[suspend initializing on specified devices]' \
- ':pool name:_zfs_pool' \
- '*:device:_files'
- ;;
-
- (iostat)
- _arguments -A "-*" \
- '-l[Display configuration in /dev/chassis location form]' \
- '-T[timestamp]:value:(u d)' \
- '-v[Verbose statistics]' \
- '*::pool name:_zfs_pool' \
- '::interval:' \
- '::count:'
- ;;
-
- (labelclear)
- _arguments -A "-*" \
- '-f[treat exported or foreign devices as inactive]' \
- '*:virtual device:_files'
- ;;
-
- (status)
- _arguments -A "-*" \
- '-l[Display configuration in /dev/chassis location form]' \
- '-v[Verbose information]' \
- '-x[Show only unhealthy pools]' \
- '-T[timestamp]:value:(u d)' \
- '*::pool name:_zfs_pool'
- ;;
-
- (offline)
- _arguments -A "-*" \
- '-t[Offline until next reboot]' \
- ':pool name:_zfs_pool' \
- '*:virtual device:_files'
- ;;
-
- (online)
- _arguments \
- '-e[Expand device to use all available space]' \
- ':pool name:_zfs_pool' \
- '*:virtual device:_files'
- ;;
-
- (attach)
- # TODO: first device should choose first from existing.
- _arguments \
- '-f[Force attach, even if in use]' \
- ':pool name:_zfs_pool' \
- ':virtual device:_files' \
- ':virtual device:_files'
- ;;
-
- (detach)
- _arguments \
- ':pool name:_zfs_pool' \
- ':virtual device:_files'
- ;;
-
- (replace)
- _arguments -A "-*" \
- '-f[Force attach, even if in use]' \
- ':pool name:_zfs_pool' \
- ':virtual device:_files' \
- '::virtual device:_files'
- ;;
-
- (scrub)
- _arguments -A "-*" \
- '-s[Stop scrubbing]' \
- '*:pool name:_zfs_pool'
- ;;
-
- (export)
- _arguments -A "-*" \
- '-f[Forcefully unmount all datasets]' \
- '*:pool name:_zfs_pool'
- ;;
-
- (import)
- # TODO: -o should complete mount options, too
- _arguments -A "-*" \
- '-D[Destroyed pools]' \
- '(-d)*-c[Use cache file]:cache file:_files' \
- '(-c -D)*-d[Search for devices or files in directory]:directory:_files -/' \
- '-F[Recovery mode: discard transactions if required]' \
- '-f[Force import]' \
- '-l[Display configuration in /dev/chassis location form]' \
- '-m[Ignore missing log devices]' \
- '-N[Import pool without mounting any filesystems]' \
- '-n[With -F; do not perform input]' \
- '-R[Alternate root]:alternate root:_files -/' \
- '-o[Set pool or dataset property]:property:_values -s , "property" $create_properties_dataset $rw_props' \
- - set1 \
- '*:pool name or id:_zfs_pool' \
- '::new pool name:' \
- - set2 \
- '-N[Do not mount any filesystems]' \
- '-a[All pools]'
- ;;
-
- (get)
- _arguments -A "-*" \
- ':property:_values -s , "property" $fields' \
- '*:pool name:_zfs_pool'
- ;;
-
- (set)
- _arguments -A "-*" \
- ':property:_values -s , "property" $rw_props' \
- '*:pool name:_zfs_pool'
- ;;
-
- (split)
- _arguments -A "-*" \
- '-R[Alternate root]:alternate root:_files -/' \
- '-l[Display configuration in /dev/chassis location form]' \
- '-n[Display configuration without splitting]' \
- '-o[Set pool or dataset property]:property:_values -s , "property" $create_properties_dataset $rw_props' \
- ':pool name or id:_zfs_pool' \
- ':new pool name:' \
- '*::virtual device:_files -/'
- ;;
-
- (upgrade)
- _arguments -A "-*" \
- - set1 \
- '-v[Display ZFS versions and descriptions]' \
- - set2 \
- "-V[Upgrade to given version]:version:($versions)" \
- '-a[Upgrade all pools]' \
- '*:pool name:_zfs_pool'
- ;;
-
- (history)
- _arguments -A "-*" \
- '-i[Display internal events]' \
- '-l[Long format]' \
- '*:pool name:_zfs_pool'
- ;;
-
- (*)
- _message "unknown zpool subcommand: $service"
- ;;
- esac
-}
-
-_zpool "$@"