Zeke Foppa bec1771c44
Update edition in .rustfmt.toml and pre-commit hook (#4543)
# Description of Changes

We've updated to 2024
(https://github.com/clockworklabs/SpacetimeDB/pull/3802).

I'm just adding `edition` to `.rustfmt.toml`, and removing the hardcoded
edition from the pre-commit hook. This fixes the pre-commit hook
complaining about us using Rust 2024 features.

# API and ABI breaking changes

None

# Expected complexity level and risk

1

# Testing
- [x] `rustfmt crates/auth/src/identity.rs` now succeeds for me

---------

Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
2026-03-04 05:20:08 +00:00

90 lines
2.7 KiB
Bash
Executable File

#!/bin/bash
#
# An example hook script to verify what is about to be committed.
# Called by "git commit" with no arguments. The hook should
# exit with non-zero status after issuing an appropriate message if
# it wants to stop the commit.
#
# To enable this hook, rename this file to "pre-commit".
# if git rev-parse --verify HEAD >/dev/null 2>&1
# then
# against=HEAD
# else
# # Initial commit: diff against an empty tree object
# against=$(git hash-object -t tree /dev/null)
# fi
#
# # If you want to allow non-ASCII filenames set this variable to true.
# allownonascii=$(git config --type=bool hooks.allownonascii)
#
# # Redirect output to stderr.
# exec 1>&2
#
# # Cross platform projects tend to avoid non-ASCII filenames; prevent
# # them from being added to the repository. We exploit the fact that the
# # printable range starts at the space character and ends with tilde.
# if [ "$allownonascii" != "true" ] &&
# # Note that the use of brackets around a tr range is ok here, (it's
# # even required, for portability to Solaris 10's /usr/bin/tr), since
# # the square bracket bytes happen to fall in the designated range.
# test $(git diff --cached --name-only --diff-filter=A -z $against |
# LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
# then
# cat <<\EOF
# Error: Attempt to add a non-ASCII file name.
#
# This can cause problems if you want to work with people on other platforms.
#
# To be portable it is advisable to rename the file.
#
# If you know what you are doing you can disable this check using:
#
# git config hooks.allownonascii true
# EOF
# exit 1
# fi
#
# # If there are whitespace errors, print the offending file names and fail.
# exec git diff-index --check --cached $against --
# Run the rust formatter
exe="$(which rustfmt)"
echo "Running rustfmt precommit $exe..."
git_repo="$(git rev-parse --show-toplevel)"
echo "For git repo: $git_repo..."
if [ -n "$exe" ]; then
# field separator to the new line
IFS=$'\n'
for line in $(git status -s); do
# if added or modified
if [[ "$line" == 'A'* || "$line" == 'M'* ]]; then
if [[ "${line:3}" == "crates/spacetimedb-core/src/messages.rs" ]]; then
echo "Skipping format for messages.rs..."
continue
fi
if [[ "${line:3}" == crates/spacetimedb-core/src/protobuf/*.rs ]]; then
echo "Skipping format for protobuf output..."
continue
fi
# check file extension
if [[ "$line" == *.rs ]]; then
echo "Formatting changed file: ${line:3}..."
# format file
rustfmt "$git_repo/${line:3}"
# add changes
git add "$git_repo/${line:3}"
fi
fi
done
else
echo "rustfmt was not found"
fi