summaryrefslogtreecommitdiff
path: root/misc/scripts/black_format.sh
diff options
context:
space:
mode:
Diffstat (limited to 'misc/scripts/black_format.sh')
-rwxr-xr-xmisc/scripts/black_format.sh34
1 files changed, 34 insertions, 0 deletions
diff --git a/misc/scripts/black_format.sh b/misc/scripts/black_format.sh
new file mode 100755
index 0000000..f6b7925
--- /dev/null
+++ b/misc/scripts/black_format.sh
@@ -0,0 +1,34 @@
+#!/usr/bin/env bash
+
+# This script runs black on all Python files in the repo.
+
+set -uo pipefail
+
+# Apply black.
+echo -e "Formatting Python files..."
+PY_FILES=$(find \( -path "./.git" \
+ -o -path "./webrtc" \
+ -o -path "./godot-cpp" \
+ \) -prune \
+ -o \( -name "SConstruct" \
+ -o -name "SCsub" \
+ -o -name "*.py" \
+ \) -print)
+black -l 120 $PY_FILES
+
+git diff > patch.patch
+
+# If no patch has been generated all is OK, clean up, and exit.
+if [ ! -s patch.patch ] ; then
+ printf "Files in this commit comply with the black style rules.\n"
+ rm -f patch.patch
+ exit 0
+fi
+
+# A patch has been created, notify the user, clean up, and exit.
+printf "\n*** The following differences were found between the code "
+printf "and the formatting rules:\n\n"
+cat patch.patch
+printf "\n*** Aborting, please fix your commit(s) with 'git commit --amend' or 'git rebase -i <hash>'\n"
+rm -f patch.patch
+exit 1