common/rc: handle option with argument in _require_xfs_io_command()
authorEric Biggers <ebiggers@google.com>
Mon, 3 Feb 2020 18:18:53 +0000 (10:18 -0800)
committerEryu Guan <guaneryu@gmail.com>
Mon, 17 Feb 2020 13:04:43 +0000 (21:04 +0800)
Fix _require_xfs_io_command() to handle options that take arguments when
the argument is shown in the help text.  E.g., it didn't work to run:

_require_xfs_io_command "add_enckey" "-k"

because the relevant line of the help text is:

-k KEY_ID -- ID of fscrypt-provisioning key containing the raw key

... but the grep command only matched "-k --", not "-k KEY_ID --".

Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
common/rc

index b4a77a2187f4f87796e388428e6d3971e33faff0..0306e93cb1caaf6ba5abf92d0f765a62f1c0786d 100644 (file)
--- a/common/rc
+++ b/common/rc
@@ -2248,7 +2248,7 @@ _require_xfs_io_command()
        [ -n "$param" ] || return
 
        if [ -z "$param_checked" ]; then
-               $XFS_IO_PROG -c "help $command" | grep -q "^ $param --" || \
+               $XFS_IO_PROG -c "help $command" | grep -E -q "^ $param ([a-zA-Z_]+ )?--" || \
                        _notrun "xfs_io $command doesn't support $param"
        else
                # xfs_io could result in "command %c not supported" if it was