Add a script to automatically rustfmt all required files

As we now require `rustfmt` pass on a subset of our files, its
helpful to have a script which will automatically format any
required files so that contributors don't need to think too hard
about it.
This commit is contained in:
Matt Corallo 2024-08-05 16:59:57 +00:00
parent c7419b4323
commit 0079ca840a
2 changed files with 20 additions and 1 deletions

View File

@ -124,7 +124,7 @@ display fine at any tab-length display setting. We use `rustfmt` to establish
uniform coding standards throughout the codebase. Please run
```bash
./ci/rustfmt.sh
./contrib/run-rustfmt.sh
```
before committing and pushing any changes, as compliance will also be checked

19
contrib/run-rustfmt.sh Executable file
View File

@ -0,0 +1,19 @@
#!/bin/bash
set -eo 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 "Formatting $file..."
rustfmt $VERS --edition 2021 $file
done