mirror of
https://github.com/clockworklabs/SpacetimeDB.git
synced 2026-03-20 09:01:05 +08:00
# 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>
90 lines
2.7 KiB
Bash
Executable File
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
|