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.
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
--- /dev/null
+#!/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