rust/util/etc/pre-commit.sh
2021-09-29 05:46:43 +02:00

23 lines
694 B
Bash
Executable File

#!/bin/sh
# hide output
set -e
# Update lints
cargo dev update_lints
git add clippy_lints/src/lib.rs
git add clippy_lints/src/lib.*.rs
# Formatting:
# Git will not automatically add the formatted code to the staged changes once
# fmt was executed. This collects all staged files rs files that are currently staged.
# They will later be added back.
#
# This was proudly stolen and adjusted from here:
# https://medium.com/@harshitbangar/automatic-code-formatting-with-git-66c3c5c26798
files=$( (git diff --cached --name-only --diff-filter=ACMR | grep -Ei "\.rs$") || true)
if [ ! -z "${files}" ]; then
cargo dev fmt
git add $(echo "$files" | paste -s -d " " -)
fi