]> git.bitcoin.ninja Git - rust-lightning/commitdiff
Add a script to automatically `rustfmt` all required files
authorMatt Corallo <git@bluematt.me>
Mon, 5 Aug 2024 16:59:57 +0000 (16:59 +0000)
committerMatt Corallo <git@bluematt.me>
Mon, 5 Aug 2024 17:57:19 +0000 (17:57 +0000)
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.

CONTRIBUTING.md
contrib/run-rustfmt.sh [new file with mode: 0755]

index 4b8e044d1d303c6d01daf4c4746e240ef4101283..38956abf2a1091dc4a9c09015080a31797a4eb01 100644 (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
diff --git a/contrib/run-rustfmt.sh b/contrib/run-rustfmt.sh
new file mode 100755 (executable)
index 0000000..d109756
--- /dev/null
@@ -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