From 21ddfabb8d2ff8180419230c7fac462604843ed5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20G=C3=B3rski?= Date: Wed, 9 Aug 2023 17:28:01 +0200 Subject: [PATCH] Simplify and fix `__fish_is_zfs_feature_enabled` (#9939) * Simplify and fix `__fish_is_zfs_feature_enabled` Previously `__fish_is_zfs_feature_enabled` was doing `$queried_feature` pattern matching which was skipping the state part expected in the follow-up checking code. Passing the dataset/snapshot in a `target` argument is pointless. As none of the existing code attempts to do this plus it is also a private function (`__` prefix), rename of the argument and removal of extra text replacement should not be considered a breaking change. * Changed the `&& \` into `|| return` * Run `fish_indent` --- .../__fish_is_zfs_feature_enabled.fish | 22 +++++-------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/share/functions/__fish_is_zfs_feature_enabled.fish b/share/functions/__fish_is_zfs_feature_enabled.fish index 66a4bca8f..8949ce41e 100644 --- a/share/functions/__fish_is_zfs_feature_enabled.fish +++ b/share/functions/__fish_is_zfs_feature_enabled.fish @@ -1,17 +1,7 @@ -function __fish_is_zfs_feature_enabled -a feature target -d "Returns 0 if the given ZFS feature is available or enabled for the given full-path target (zpool or dataset), or any target if none given" - type -q zpool - or return - set -l pool (string replace -r '/.*' '' -- $target) - set -l feature_name "" - if test -z "$pool" - set feature_name (zpool get -H all 2>/dev/null | string match -r "\s$feature\s") - else - set feature_name (zpool get -H all $pool 2>/dev/null | string match -r "$pool\s$feature\s") - end - if test $status -ne 0 # No such feature - return 1 - end - set -l state (echo $feature_name | cut -f3) - string match -qr '(active|enabled)' -- $state - return $status +function __fish_is_zfs_feature_enabled \ + -a feature pool \ + -d "Returns 0 if the given ZFS pool feature is active or enabled for the given pool or for any pool if none specified" + + type -q zpool || return + zpool get -H -o value $feature $pool 2>/dev/null | string match -rq '^(enabled|active)$' end