Drop the rustup-specific calling in `ci/rustfmt.sh` 2024-04-2761-followups
authorMatt Corallo <git@bluematt.me>
Mon, 22 Apr 2024 13:03:14 +0000 (13:03 +0000)
committerMatt Corallo <git@bluematt.me>
Mon, 22 Apr 2024 13:05:53 +0000 (13:05 +0000)
The +rustversion call semantics are specific to rustup and do not
work with standard rust toolchains. However, because rustfmt
formatting differs slightly between stable and our 1.63 target, we
need to keep the +1.63.0 for rustup users.

Thus, here, we check for the presence of a `rustup` command and
pass the "+1.63.0" argument if we find one.

ci/rustfmt.sh

index dfc181dee7951926cad209df3404bf9a82ac8ec8..a1fdf6bd7f3282ff669944335e9d029d2a21989f 100755 (executable)
@@ -4,10 +4,16 @@ set -eox pipefail
 # Generate initial exclusion list
 #find . -name '*.rs' -type f |sort >rustfmt_excluded_files
 
+# The +rustversion syntax only works with rustup-installed rust toolchains,
+# not with any distro-provided ones. Thus, we check for a rustup install and
+# only pass +1.63.0 if we find one.
+VERS=""
+[ "$(which rustup)" != "" ] && VERS="+1.63.0"
+
 # Run fmt
 TMP_FILE=$(mktemp)
 find . -name '*.rs' -type f |sort >$TMP_FILE
 for file in $(comm -23 $TMP_FILE rustfmt_excluded_files); do
        echo "Checking formatting of $file"
-       rustfmt +1.63.0 --check $file
+       rustfmt $VERS --check $file
 done