You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.2 KiB

#!/bin/bash
# This is a script which can be included in a pre-commit hook to auto format code using specified
# tools. In this script we utilize black for python and intelliJ for Java.
# Only run if black is installed
if hash black 2>/dev/null; then
# Find all of the .py files in the current git repo, apply black formatting to them and then
# add them again
cached_files=$(git diff --cached --name-status | \
grep -v '^D' | grep '\.py' | \
sed 's/[A-Z][ \t]*//')
# Only run if we have cached python files
if [ "$cached_files" ]; then
black --line-length 100 $cached_files \
&& git add $cached_files \
|| exit 1
fi
else
echo "Black isn't installed so not formatting python code"
fi
# Only run if intellij is set up
if hash idea.sh 2>/dev/null; then
# Apply intellij
cached_files=$(git diff --cached --name-status | \
grep -v '^D' | grep '\.java' | \
sed 's/[A-Z][ \t]*//')
if [ "$cached_files" ]; then
idea.sh format -allowDefaults $cached_files 2>/dev/null \
&& git add $cached_files \
|| exit 1
fi
else
echo "intellij isn't installed so not formatting java code"
fi