Add CI check for mixed line endings

Trigger workflow on all file changes.

Closes https://github.com/wxWidgets/wxWidgets/pull/2224
This commit is contained in:
Maarten Bent 2021-02-09 21:03:54 +01:00 committed by Vadim Zeitlin
parent 7a74c0872c
commit 36ab71301c
2 changed files with 52 additions and 16 deletions

View File

@ -5,25 +5,9 @@ on:
push: push:
branches: branches:
- master - master
paths:
- '.github/workflows/code_checks.yml'
- 'docs/**'
- 'include/**'
- 'interface/**'
- 'misc/suppressions/**'
- '**/*.md'
- '!docs/changes*txt'
pull_request: pull_request:
branches: branches:
- master - master
paths:
- '.github/workflows/code_checks.yml'
- 'docs/**'
- 'include/**'
- 'interface/**'
- 'misc/suppressions/**'
- '**/*.md'
- '!docs/changes*txt'
jobs: jobs:
check-unix: check-unix:
@ -66,3 +50,20 @@ jobs:
':!**/*.sln' \ ':!**/*.sln' \
':!**/*.vcproj' \ ':!**/*.vcproj' \
':!**/*.xpm' ':!**/*.xpm'
check-mixed-eol:
runs-on: ubuntu-20.04
name: Check Mixed EOL
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install dos2unix
run: |
sudo apt-get install -y dos2unix
- name: Check for mixed EOL
run: |
./misc/scripts/check_mixed_eol.sh

35
misc/scripts/check_mixed_eol.sh Executable file
View File

@ -0,0 +1,35 @@
#!/bin/bash
cd `dirname "$0"`/../..
find . \( \
-path './.git' -prune -o \
-path './3rdparty' -prune -o \
-path './src/expat' -prune -o \
-path './src/jpeg' -prune -o \
-path './src/png' -prune -o \
-path './src/tiff' -prune -o \
-path './src/zlib' -prune \) \
-o -type f -print0 |
(
while IFS= read -r -d '' file; do
case "$file" in
*.ani | *.bmp | *.chm | *.dia | *.gif | *.gz | *.hlp | *.icns | *.ico | *.jpg | *.mo | *.mpg | *.pcx | *.pdf | *.png | *.pnm | *.tga | *.tif | *.ttf | *.wav | *.zip )
continue
;;
esac
read dos unix mac <<< $(dos2unix --info=dum "$file" | awk '{print $1, $2, $3}')
if [[ "$dos" -eq "0" ]] && [[ "$unix" -eq "0" ]]; then
:
elif [[ "$dos" -eq "0" ]] && [[ "$mac" -eq "0" ]]; then
:
elif [[ "$unix" -eq "0" ]] && [[ "$mac" -eq "0" ]]; then
:
else
echo "$file has mixed EOL"
rc=$((rc+1))
fi
done
exit $rc
)