Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
PATCH: completion fix for zfs scripts and delegation
- X-seq: zsh-workers 53970
- From: Oliver Kiddle <opk@xxxxxxx>
- To: Zsh workers <zsh-workers@xxxxxxx>
- Subject: PATCH: completion fix for zfs scripts and delegation
- Date: Thu, 25 Sep 2025 00:55:22 +0200
- Archived-at: <https://zsh.org/workers/53970>
- List-id: <zsh-workers.zsh.org>
This is inspired by the _zfs change included in github #131. That
patch adds one writable zfs dataset property to the list of delegated
permissions for zfs-allow. All such properties such be completed. This
was probably broken at some point by a reordering of the array
assignments.
The extension scripts specified with zpool iostat -c can be a
comma-separated list. This is better handled with _sequence than by
using _values.
Oliver
diff --git a/Completion/Unix/Command/_zfs b/Completion/Unix/Command/_zfs
index 850dfe52b..ec904a41b 100644
--- a/Completion/Unix/Command/_zfs
+++ b/Completion/Unix/Command/_zfs
@@ -300,12 +300,6 @@ case $OSTYPE in
   ;;
 esac
 
-delegatable_perms+=(
-  allow clone create destroy diff hold key keychange mount promote receive
-  release rename rollback send share snapshot groupquota groupused userprop
-  userused ${ci_ds_props%%:*}
-)
-
 key_properties=(
   'keylocation:location [prompt]:_files -P file\:// -W /'
   'keyformat:format:(raw hex passphrase)'
@@ -316,6 +310,12 @@ ro_ds_props+=( $share_ro_properties )
 rw_ds_props+=( $share_rw_properties )
 ci_ds_props+=( $rw_ds_props )
 
+delegatable_perms+=(
+  allow clone create destroy diff hold key keychange mount promote receive
+  release rename rollback send share snapshot groupquota groupused userprop
+  userused ${ci_ds_props%%:*}
+)
+
 ds_propnames=( ${rw_ds_props%%:*} )
 po_propnames=( ${ro_po_props%%:*} ${ci_po_props%%:*} ${rw_po_props%%:*} )
 
@@ -1080,7 +1080,7 @@ case $service:$words[1] in
   zpool:iostat)
     if [[ $implementation = openzfs ]]; then
       args=(
-        '-c[run scripts on each vdev]:script:_files -W "($ZPOOL_SCRIPTS_PATH /etc/zfs/zpool.d ~/.zpool.d)"'
+        '-c+[run scripts on each vdev]:script:_sequence _files -W "($ZPOOL_SCRIPTS_PATH /etc/zfs/zpool.d ~/.zpool.d)"'
         '-g[display vdev GUIDs instead of normal device names]'
         '-H[suppress headers and tab-delimit fields]'
         '-L[display real paths for vdevs resolving all symbolic links]'
@@ -1249,7 +1249,7 @@ case $service:$words[1] in
       args=(
         '--power[display vdev enclosure slot power status]'
         '-D[display a histogram of deduplication statistics]'
-        '-c[run scripts on each vdev]:script:_files -W "($ZPOOL_SCRIPTS_PATH /etc/zfs/zpool.d ~/.zpool.d)"'
+        '-c+[run scripts on each vdev]:script:_sequence _files -W "($ZPOOL_SCRIPTS_PATH /etc/zfs/zpool.d ~/.zpool.d)"'
         '-e[only show unhealthy vdevs]'
         '-i[display vdev initialization status]'
         '-g[display vdev GUIDs instead of the normal device names]'
Messages sorted by:
Reverse Date,
Date,
Thread,
Author