common/btrfs: Improve _require_btrfs_command

Now _require_btrfs_command can also check for subfuntion options, like
"subvolume delete --subvolid".

Signed-off-by: Marcos Paulo de Souza <mpdesouza@suse.com>
Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
This commit is contained in:
Marcos Paulo de Souza
2020-02-07 10:19:50 -03:00
committed by Eryu Guan
parent 0ea2b67b09
commit 2f9b403925
+11 -2
View File
@@ -12,12 +12,14 @@ _btrfs_get_subvolid()
# _require_btrfs_command <command> [<subcommand>|<option>]
# We check for btrfs and (optionally) features of the btrfs command
# It can both subfunction like "inspect-internal dump-tree" and
# options like "check --qgroup-report"
# This function support both subfunction like "inspect-internal dump-tree" and
# options like "check --qgroup-report", and also subfunction options like
# "subvolume delete --subvolid"
_require_btrfs_command()
{
local cmd=$1
local param=$2
local param_arg=$3
local safe_param
_require_command "$BTRFS_UTIL_PROG" btrfs
@@ -39,6 +41,13 @@ _require_btrfs_command()
$BTRFS_UTIL_PROG $cmd $param --help &> /dev/null
[ $? -eq 0 ] || _notrun "$BTRFS_UTIL_PROG too old (must support $cmd $param)"
test -z "$param_arg" && return
# replace leading "-"s for grep
safe_param=$(echo $param_arg | sed 's/^-*//')
$BTRFS_UTIL_PROG $cmd $param --help | grep -wq $safe_param || \
_notrun "$BTRFS_UTIL_PROG too old (must support $cmd $param $param_arg)"
}
# Require extra check on btrfs qgroup numbers