aboutsummaryrefslogtreecommitdiff
path: root/rust-format-all.nix
diff options
context:
space:
mode:
Diffstat (limited to 'rust-format-all.nix')
-rw-r--r--rust-format-all.nix20
1 files changed, 20 insertions, 0 deletions
diff --git a/rust-format-all.nix b/rust-format-all.nix
new file mode 100644
index 0000000..710f1ef
--- /dev/null
+++ b/rust-format-all.nix
@@ -0,0 +1,20 @@
+{ writeShellApplication
+, rustfmt
+,
+}:
+writeShellApplication {
+ name = "rustfmt_all";
+
+ runtimeInputs = [ rustfmt ];
+
+ text = ''
+ # Using rustfmt instead of cargo fmt, because the latter doesn't support proc-macro crates
+ # Additionally, instead of emitting an error, it will "hang", waiting for input
+ while read -r file
+ do
+ rustfmt --edition 2021 -v "$@" "$file" || exit $?
+ done <<EOF
+ $(find . -type f -name "*.rs" -not -path "*target*")
+ EOF
+ '';
+}