Przeglądaj źródła

CI: Enforce newline at end of files

Reference:
https://medium.com/@alexey.inkin/how-to-force-newline-at-end-of-files-and-why-you-should-do-it-fdf76d1d090e
Jim Huang 10 miesięcy temu
rodzic
commit
1d3943a72b

+ 19 - 0
.ci/check-newline.sh

@@ -0,0 +1,19 @@
+#!/usr/bin/env bash
+
+set -e -u -o pipefail
+
+ret=0
+show=0
+# Reference: https://medium.com/@alexey.inkin/how-to-force-newline-at-end-of-files-and-why-you-should-do-it-fdf76d1d090e
+while IFS= read -rd '' f; do
+    if file --mime-encoding "$f" | grep -qv binary; then
+        tail -c1 < "$f" | read -r _ || show=1
+        if [ $show -eq 1 ]; then
+            echo "Warning: No newline at end of file $f"
+            ret=1
+            show=0
+        fi
+    fi
+done < <(git ls-files -z examples)
+
+exit $ret

+ 1 - 0
.github/workflows/status-check.yaml

@@ -26,6 +26,7 @@ jobs:
             sudo apt-get install -q -y clang-format-12
             sudo apt-get install -q -y cppcheck
             sudo apt-get install -q -y gcc-11
+            .ci/check-newline.sh
             .ci/check-format.sh
             .ci/static-analysis.sh
             .ci/build-n-run.sh

+ 1 - 1
examples/.clang-format

@@ -95,4 +95,4 @@ SpacesInParentheses: false
 SpacesInSquareBrackets: false
 Standard: Cpp03
 TabWidth: 4
-UseTab: Never
+UseTab: Never