diff --git a/.github/checks/Makefile b/.github/checks/Makefile index 3e85c0fd7..827606d01 100644 --- a/.github/checks/Makefile +++ b/.github/checks/Makefile @@ -1,7 +1,15 @@ .PHONY: tabs -check: tabs +check: tabs lastline tabs: tabs.sh @./tabs.sh + +lastline: lastline.sh + @./lastline.sh + +# checks that will currently fail (on a lot of files), so they are not included +# in the general "check" action +spaces: spaces.sh + @./spaces.sh diff --git a/.github/checks/lastline.sh b/.github/checks/lastline.sh new file mode 100755 index 000000000..d455481d1 --- /dev/null +++ b/.github/checks/lastline.sh @@ -0,0 +1,22 @@ +#! /bin/bash +OLDCWD=`pwd` +SCRIPT_PATH=`dirname $0` +cd $SCRIPT_PATH/../../ + +nl=' +' +nl=$'\n' +FILES=`find $CHECK_PATH -type f \( \( -name \*.inc -a \! -name Makefile.inc \) -o -name \*.cfg -o -name \*.c -o -name \*.s -o -name \*.h -o -name \*.asm -o -name \*.sgml \) -print | while read f; do + t=$(tail -c2 $f; printf x); r1="${nl}$"; + [[ ${t%x} =~ $r1 ]] || echo "$f" +done` + +cd $OLDCWD + +if [ x"$FILES"x != xx ]; then + echo "error: found following files that have no newline at the end:" + for n in $FILES; do + echo $n + done + exit -1 +fi diff --git a/.github/checks/spaces.sh b/.github/checks/spaces.sh new file mode 100755 index 000000000..309ba9ac1 --- /dev/null +++ b/.github/checks/spaces.sh @@ -0,0 +1,16 @@ +#! /bin/bash +OLDCWD=`pwd` +SCRIPT_PATH=`dirname $0` +cd $SCRIPT_PATH/../../ + +FILES=`find $CHECK_PATH -type f \( \( -name \*.inc -a \! -name Makefile.inc \) -o -name \*.cfg -o -name \*.c -o -name \*.s -o -name \*.h -o -name \*.asm -o -name \*.sgml \) -print | xargs grep -l ' $' | grep -v "libwrk/" | grep -v "testwrk/"` + +cd $OLDCWD + +if [ x"$FILES"x != xx ]; then + echo "error: found dangling spaces in the following files:" + for n in $FILES; do + echo $n + done + exit -1 +fi