diff options
author | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2021-07-09 19:43:04 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-09 19:43:04 +0200 |
commit | c0b31562f51606fc1b1c662e99dffde1044a9583 (patch) | |
tree | 3157fbaec9bb148c64cb4fd3fa40bad6e8ad3864 /misc/scripts/file_format.sh | |
parent | eeabf0a8446c41ce8b11c063ede07337ba7eabbb (diff) | |
parent | 69f92fa26c7bef3b042d8da5e520fe60b22e01b7 (diff) | |
download | godot-webrtc-native-c0b31562f51606fc1b1c662e99dffde1044a9583.tar.gz godot-webrtc-native-c0b31562f51606fc1b1c662e99dffde1044a9583.tar.bz2 godot-webrtc-native-c0b31562f51606fc1b1c662e99dffde1044a9583.zip |
Merge pull request #39 from Faless/style/clang_black
Add static checks
Diffstat (limited to 'misc/scripts/file_format.sh')
-rwxr-xr-x | misc/scripts/file_format.sh | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/misc/scripts/file_format.sh b/misc/scripts/file_format.sh new file mode 100755 index 0000000..e6e1fe2 --- /dev/null +++ b/misc/scripts/file_format.sh @@ -0,0 +1,48 @@ +#!/usr/bin/env bash + +# This script ensures proper POSIX text file formatting and a few other things. +# This is supplementary to clang_format.sh and black_format.sh, but should be +# run before them. + +# We need dos2unix and recode. +if [ ! -x "$(command -v dos2unix)" -o ! -x "$(command -v recode)" ]; then + printf "Install 'dos2unix' and 'recode' to use this script.\n" +fi + +set -uo pipefail +IFS=$'\n\t' + +# Loops through all text files tracked by Git. +git grep -zIl '' | +while IFS= read -rd '' f; do + # Exclude some types of files. + if [[ "$f" == "webrtc"* ]]; then + continue + elif [[ "$f" == "godot-cpp"* ]]; then + continue + fi + # Ensure that files are UTF-8 formatted. + recode UTF-8 "$f" 2> /dev/null + # Ensure that files have LF line endings and do not contain a BOM. + dos2unix "$f" 2> /dev/null + # Remove trailing space characters and ensures that files end + # with newline characters. -l option handles newlines conveniently. + perl -i -ple 's/\s*$//g' "$f" +done + +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 formatting 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 |