]> git.lizzy.rs Git - dragonfireclient.git/commitdiff
Added script that automaticall corrects lint style
authorElias Fleckenstein <eliasfleckenstein@web.de>
Wed, 4 Nov 2020 15:57:24 +0000 (16:57 +0100)
committerElias Fleckenstein <eliasfleckenstein@web.de>
Wed, 4 Nov 2020 15:57:24 +0000 (16:57 +0100)
util/ci/lint_autocorrect.sh [new file with mode: 0644]

diff --git a/util/ci/lint_autocorrect.sh b/util/ci/lint_autocorrect.sh
new file mode 100644 (file)
index 0000000..a2ea40e
--- /dev/null
@@ -0,0 +1,45 @@
+#! /bin/bash
+function perform_lint() {
+       echo "Performing LINT..."
+       if [ -z "${CLANG_FORMAT}" ]; then
+               CLANG_FORMAT=clang-format
+       fi
+       echo "LINT: Using binary $CLANG_FORMAT"
+       CLANG_FORMAT_WHITELIST="util/ci/clang-format-whitelist.txt"
+
+       files_to_lint="$(find src/ -name '*.cpp' -or -name '*.h')"
+
+       local errorcount=0
+       local fail=0
+       for f in ${files_to_lint}; do
+               d=$(diff -u "$f" <(${CLANG_FORMAT} "$f") || true)
+
+               if ! [ -z "$d" ]; then
+                       whitelisted=$(awk '$1 == "'$f'" { print 1 }' "$CLANG_FORMAT_WHITELIST")
+
+                       # If file is not whitelisted, mark a failure
+                       if [ -z "${whitelisted}" ]; then
+                               errorcount=$((errorcount+1))
+
+                               printf "The file %s is not compliant with the coding style" "$f"
+                               if [ ${errorcount} -gt 50 ]; then
+                                       printf "\nToo many errors encountered previously, this diff is hidden.\n"
+                               else
+                                       printf ":\n%s\n" "$d"
+                               fi
+                               
+                               ${CLANG_FORMAT} "-i $f"
+
+                               fail=1
+                       fi
+               fi
+       done
+
+       if [ "$fail" = 1 ]; then
+               echo "LINT reports failure."
+               exit 1
+       fi
+
+       echo "LINT OK"
+}
+