forked from Lainports/freebsd-ports
for zfs(8) and zpool(8) which we had previously had as local patches, I blindly assumed that the upstream versions were correct. They weren't.
207 lines
4.3 KiB
Text
207 lines
4.3 KiB
Text
--- Completion/Unix/Command/_zpool.orig 2008-08-12 12:28:11.000000000 +0200
|
|
+++ Completion/Unix/Command/_zpool 2009-01-21 16:49:13.434692608 +0100
|
|
@@ -199,204 +199,3 @@
|
|
}
|
|
|
|
_zpool "$@"
|
|
-#compdef zpool
|
|
-
|
|
-_zpool() {
|
|
- local -a subcmds fields
|
|
-
|
|
- subcmds=(
|
|
- create destroy add remove list iostat status online
|
|
- offline clear attach detach replace scrub import export
|
|
- upgrade history get set
|
|
- )
|
|
-
|
|
- fields=(
|
|
- name\:"Pool name" size\:"Total size" used\:"Space used"
|
|
- available\:"Space available" capacity\:"Space used (percentage)"
|
|
- health\:"Health status"
|
|
- )
|
|
-
|
|
- properties=(
|
|
- "bootfs:value:"
|
|
- "autoreplace:value:(on off)"
|
|
- "delegation:value:(on off)"
|
|
- )
|
|
- propnames=( ${properties%%:*} )
|
|
-
|
|
- import_properties=(
|
|
- xattr
|
|
- copies
|
|
- shareiscsi
|
|
- canmount
|
|
- share
|
|
- sharenfs
|
|
- userprop
|
|
- mount
|
|
- )
|
|
-
|
|
- if [[ $service == "zpool" ]]; then
|
|
- _arguments -C -A "-*" \
|
|
- '-\?[Help]' \
|
|
- '*::command:->subcmd' && return 0
|
|
-
|
|
- if (( CURRENT == 1 )); then
|
|
- _wanted commands expl "zpool subcommand" compadd -a subcmds
|
|
- return
|
|
- fi
|
|
- service="$words[1]"
|
|
- curcontext="${curcontext%:*}=$service:"
|
|
- fi
|
|
-
|
|
- case $service in
|
|
- (clear)
|
|
- _arguments \
|
|
- ':pool name:_zfs_pool' \
|
|
- '*:virtual device:_files'
|
|
- ;;
|
|
-
|
|
- (create)
|
|
- # TODO: investigate better vdev handling
|
|
- _arguments -A "-*" \
|
|
- '-f[Force use of in-use devices]' \
|
|
- '-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]' \
|
|
- '-n[Display configuration without modifying pool]' \
|
|
- ':pool name:_zfs_pool' \
|
|
- '*:virtual device:_files'
|
|
- ;;
|
|
-
|
|
- (list)
|
|
- _arguments \
|
|
- '-H[Scripted mode]' \
|
|
- '-o[Fields to list]:field:_values -s , "field" ${^fields/\:/[}\]' \
|
|
- '::pool name:_zfs_pool'
|
|
- ;;
|
|
-
|
|
- (iostat)
|
|
- _arguments -A "-*" \
|
|
- '-v[Verbose statistics]' \
|
|
- '*::pool name:_zfs_pool' \
|
|
- '::interval:' \
|
|
- '::count:'
|
|
- ;;
|
|
-
|
|
- (status)
|
|
- _arguments -A "-*" \
|
|
- '-v[Verbose information]' \
|
|
- '-x[Show only unhealthy pools]' \
|
|
- '*::pool name:_zfs_pool'
|
|
- ;;
|
|
-
|
|
- (offline)
|
|
- _arguments -A "-*" \
|
|
- '-t[Offline until next reboot]' \
|
|
- ':pool name:_zfs_pool' \
|
|
- '*:virtual device:_files'
|
|
- ;;
|
|
-
|
|
- (online)
|
|
- _arguments \
|
|
- ':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 options
|
|
- _arguments -A "-*" \
|
|
- '*-d[Search for devices or files in directory]:_files -/' \
|
|
- '-D[Destroyed pools]' \
|
|
- '-f[Force import]' \
|
|
- - set1 \
|
|
- '-o[Mount options]' \
|
|
- '-p[Set property]:property:_values -s , "property" $import_properties' \
|
|
- '-R[Alternate root]:_files -/' \
|
|
- '*:pool name or id:_zfs_pool' \
|
|
- '::new pool name:' \
|
|
- - set2 \
|
|
- '-a[All pools]'
|
|
- ;;
|
|
-
|
|
- (get)
|
|
- _arguments -A "-*" \
|
|
- ':property:_values -s , "property" $propnames all' \
|
|
- '*:pool name:_zfs_pool'
|
|
- ;;
|
|
-
|
|
- (set)
|
|
- _arguments -A "-*" \
|
|
- ':property:_values -s , "property" $properties' \
|
|
- '*:pool name:_zfs_pool'
|
|
- ;;
|
|
-
|
|
- (upgrade)
|
|
- _arguments -A "-*" \
|
|
- - set1 \
|
|
- '-v[Display ZFS versions and descriptions]' \
|
|
- - set2 \
|
|
- '-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 "$@"
|