public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Miguel Ojeda <ojeda@kernel.org>
To: Masahiro Yamada <masahiroy@kernel.org>
Cc: linux-kbuild@vger.kernel.org,
	"Nathan Chancellor" <nathan@kernel.org>,
	"Nick Desaulniers" <ndesaulniers@google.com>,
	"Nicolas Schier" <nicolas@fjasle.eu>,
	rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org,
	patches@lists.linux.dev, "Miguel Ojeda" <ojeda@kernel.org>,
	"Alex Gaynor" <alex.gaynor@gmail.com>,
	"Wedson Almeida Filho" <wedsonaf@gmail.com>,
	"Boqun Feng" <boqun.feng@gmail.com>,
	"Gary Guo" <gary@garyguo.net>,
	"Björn Roy Baron" <bjorn3_gh@protonmail.com>
Subject: [PATCH 6/6] kbuild: rust_is_available: normalize version matching
Date: Mon,  9 Jan 2023 21:45:20 +0100	[thread overview]
Message-ID: <20230109204520.539080-6-ojeda@kernel.org> (raw)
In-Reply-To: <20230109204520.539080-1-ojeda@kernel.org>

In order to match the version string, `sed` is used in a couple
cases, and `grep` and `head` in a couple others.

Make the script more consistent and easier to understand by
using the same method, `sed`, for all of them.

This makes the version matching also a bit more strict for
the changed cases, since the strings `rustc ` and `bindgen `
will now be required, which should be fine since `rustc`
complains if one attempts to call it with another program
name, and `bindgen` uses a hardcoded string.

In addition, clarify why one of the existing `sed` commands
does not provide an address like the others.

Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
---
 scripts/rust_is_available.sh | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/scripts/rust_is_available.sh b/scripts/rust_is_available.sh
index a86659410e48..99811842b61f 100755
--- a/scripts/rust_is_available.sh
+++ b/scripts/rust_is_available.sh
@@ -66,8 +66,7 @@ fi
 # Non-stable and distributions' versions may have a version suffix, e.g. `-dev`.
 rust_compiler_version=$( \
 	LC_ALL=C "$RUSTC" --version 2>/dev/null \
-		| head -n 1 \
-		| grep -oE '[0-9]+\.[0-9]+\.[0-9]+' \
+		| sed -nE '1s:.*rustc ([0-9]+\.[0-9]+\.[0-9]+).*:\1:p'
 )
 rust_compiler_min_version=$($min_tool_version rustc)
 rust_compiler_cversion=$(get_canonical_version $rust_compiler_version)
@@ -94,8 +93,7 @@ fi
 # Non-stable and distributions' versions may have a version suffix, e.g. `-dev`.
 rust_bindings_generator_version=$( \
 	LC_ALL=C "$BINDGEN" --version 2>/dev/null \
-		| head -n 1 \
-		| grep -oE '[0-9]+\.[0-9]+\.[0-9]+' \
+		| sed -nE '1s:.*bindgen ([0-9]+\.[0-9]+\.[0-9]+).*:\1:p'
 )
 rust_bindings_generator_min_version=$($min_tool_version bindgen)
 rust_bindings_generator_cversion=$(get_canonical_version $rust_bindings_generator_version)
@@ -139,6 +137,9 @@ fi
 
 # `bindgen` returned successfully, thus use the output to check that the version
 # of the `libclang` found by the Rust bindings generator is suitable.
+#
+# Unlike other version checks, note that this one does not necessarily appear
+# in the first line of the output, thus no `sed` address is provided.
 bindgen_libclang_version=$( \
 	echo "$bindgen_libclang_output" \
 		| sed -nE 's:.*clang version ([0-9]+\.[0-9]+\.[0-9]+).*:\1:p'
-- 
2.39.0


  parent reply	other threads:[~2023-01-09 20:46 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-09 20:45 [PATCH 1/6] docs: rust: add paragraph about finding a suitable `libclang` Miguel Ojeda
2023-01-09 20:45 ` [PATCH 2/6] kbuild: rust_is_available: print docs reference Miguel Ojeda
2023-01-10 10:16   ` Finn Behrens
2023-01-10 12:28     ` Miguel Ojeda
2023-01-09 20:45 ` [PATCH 3/6] kbuild: rust_is_available: add check for `bindgen` invocation Miguel Ojeda
2023-01-09 22:46   ` Boqun Feng
2023-01-09 23:27     ` Miguel Ojeda
2023-01-12  4:33   ` Masahiro Yamada
2023-01-12  4:35     ` Masahiro Yamada
2023-01-13 23:10       ` Miguel Ojeda
2023-01-14  9:44         ` Masahiro Yamada
2023-01-14 12:11           ` Miguel Ojeda
2023-01-14 12:12   ` Miguel Ojeda
2023-01-09 20:45 ` [PATCH 4/6] kbuild: rust_is_available: check if the script was invoked from Kbuild Miguel Ojeda
2023-01-12  5:28   ` Masahiro Yamada
2023-01-13 23:12     ` Miguel Ojeda
2023-01-14 12:33       ` Masahiro Yamada
2023-01-09 20:45 ` [PATCH 5/6] kbuild: rust_is_available: fix confusion when a version appears in the path Miguel Ojeda
2023-01-12  5:32   ` Masahiro Yamada
2023-01-13 23:12     ` Miguel Ojeda
2023-01-15  2:39       ` Masahiro Yamada
2023-01-13 23:30   ` Miguel Ojeda
2023-01-09 20:45 ` Miguel Ojeda [this message]
2023-01-12  6:22   ` [PATCH 6/6] kbuild: rust_is_available: normalize version matching Masahiro Yamada
2023-01-13 23:15     ` Miguel Ojeda
2023-01-15  2:48       ` Masahiro Yamada
2023-01-15 10:48         ` Masahiro Yamada
2023-01-09 20:54 ` [PATCH 1/6] docs: rust: add paragraph about finding a suitable `libclang` Nick Desaulniers
2023-01-09 21:05   ` Miguel Ojeda
2023-01-09 21:06 ` Miguel Ojeda
2023-01-12  6:04   ` Masahiro Yamada
2023-01-13 23:13     ` Miguel Ojeda
2023-01-15  2:59       ` Masahiro Yamada

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230109204520.539080-6-ojeda@kernel.org \
    --to=ojeda@kernel.org \
    --cc=alex.gaynor@gmail.com \
    --cc=bjorn3_gh@protonmail.com \
    --cc=boqun.feng@gmail.com \
    --cc=gary@garyguo.net \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=masahiroy@kernel.org \
    --cc=nathan@kernel.org \
    --cc=ndesaulniers@google.com \
    --cc=nicolas@fjasle.eu \
    --cc=patches@lists.linux.dev \
    --cc=rust-for-linux@vger.kernel.org \
    --cc=wedsonaf@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox