diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2020-07-27 13:27:56 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-27 13:27:56 +0200 |
commit | bd9fc75768512c1149b2b24f579d144608ffd9b3 (patch) | |
tree | 207fe18217cff75a257e274eaca88bf00f005049 /misc/scripts/file_format.sh | |
parent | 08d3d06ed7bdfbc24ce8a2d5ec79567000f8849f (diff) | |
parent | c71e189efd63b3875904d8fe2b8a030e68919aad (diff) | |
download | redot-engine-bd9fc75768512c1149b2b24f579d144608ffd9b3.tar.gz |
Merge pull request #40706 from akien-mga/style-fix-file_format-macos
Fix code format scripts compat with non-GNU Unices
Diffstat (limited to 'misc/scripts/file_format.sh')
-rwxr-xr-x | misc/scripts/file_format.sh | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/misc/scripts/file_format.sh b/misc/scripts/file_format.sh index 30988e51c6..773999cf0c 100755 --- a/misc/scripts/file_format.sh +++ b/misc/scripts/file_format.sh @@ -1,7 +1,13 @@ #!/usr/bin/env bash # This script ensures proper POSIX text file formatting and a few other things. -# This is supplementary to clang-black-format.sh, but should be run before it. +# 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' @@ -29,22 +35,17 @@ while IFS= read -rd '' f; do recode UTF-8 "$f" 2> /dev/null # Ensures that files have LF line endings. dos2unix "$f" 2> /dev/null - # Ensures that files do not contain a BOM. - sed -i '1s/^\xEF\xBB\xBF//' "$f" - # Ensures that files end with newline characters. - tail -c1 < "$f" | read -r _ || echo >> "$f"; # Remove trailing space characters. - sed -z -i 's/\x20\x0A/\x0A/g' "$f" + # -l option handles newlines conveniently and seems to also get rid of BOMs. + perl -i -ple 's/\s*$//g' "$f" # Remove the character sequence "== true" if it has a leading space. - sed -z -i 's/\x20== true//g' "$f" + perl -i -pe 's/\x20== true//g' "$f" done git diff > patch.patch -FILESIZE="$(stat -c%s patch.patch)" -MAXSIZE=5 # If no patch has been generated all is OK, clean up, and exit. -if (( FILESIZE < MAXSIZE )); then +if [ ! -s patch.patch ] ; then printf "Files in this commit comply with the formatting rules.\n" rm -f patch.patch exit 0 |