.ci/lint_css.sh: add dead simple linter (MR 19)
This commit is contained in:
parent
2547cd2c35
commit
0a269b9ba0
1 changed files with 75 additions and 0 deletions
75
.ci/lint_css.sh
Executable file
75
.ci/lint_css.sh
Executable file
|
@ -0,0 +1,75 @@
|
|||
#!/bin/sh -e
|
||||
# Copyright 2021 Oliver Smith
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
#
|
||||
# As of writing, it seems that every existing CSS linter is either written in
|
||||
# JS or ruby and has tons of dependencies... so instead of that let's use this
|
||||
# simple shell script for now. This script needs find and GNU grep (for -P) and
|
||||
# a shell that knows "local".
|
||||
|
||||
TOPDIR="$(realpath "$(dirname "$0")/..")"
|
||||
CURRENT_FILE=""
|
||||
EXIT_CODE=0
|
||||
|
||||
# $1: error message
|
||||
# $2-n: arguments for grep
|
||||
lint() {
|
||||
# shellcheck disable=SC3043
|
||||
local msg="$1"
|
||||
shift
|
||||
|
||||
if grep -q "$@" "$CURRENT_FILE"; then
|
||||
echo "ERROR: $msg"
|
||||
echo "$CURRENT_FILE:"
|
||||
grep -n "$@" "$CURRENT_FILE"
|
||||
echo
|
||||
EXIT_CODE=1
|
||||
fi
|
||||
}
|
||||
|
||||
lint_spdx() {
|
||||
if ! grep -q "SPDX-License-Identifier" "$CURRENT_FILE"; then
|
||||
echo "ERROR: missing SPDX-License-Identifier in $CURRENT_FILE"
|
||||
echo
|
||||
EXIT_CODE=1
|
||||
fi
|
||||
}
|
||||
|
||||
lint_file() {
|
||||
lint \
|
||||
"tabs found, indent with 4 spaces instead" \
|
||||
-P '\t'
|
||||
|
||||
lint \
|
||||
"indent with 4 spaces" \
|
||||
-P '^([ ]{1,3}|[ ]{5,7})[a-zA-Z\[\.\/]'
|
||||
|
||||
lint \
|
||||
"spaces at the end of lines are not allowed" \
|
||||
-E ' $'
|
||||
|
||||
lint_spdx
|
||||
}
|
||||
|
||||
lint_files() {
|
||||
# shellcheck disable=SC2044
|
||||
for CURRENT_FILE in $(find . -name '*.css'); do
|
||||
if ! [ -e "$CURRENT_FILE" ]; then
|
||||
echo "ERROR: no CSS files found in current work dir"
|
||||
exit 1
|
||||
fi
|
||||
lint_file
|
||||
done
|
||||
}
|
||||
|
||||
cd "$TOPDIR/src"
|
||||
lint_files
|
||||
|
||||
if [ "$EXIT_CODE" -eq 0 ]; then
|
||||
echo "No linting errors found :)"
|
||||
else
|
||||
echo "Please fix the linting errors above and consider configuring your"
|
||||
echo "editor to use the .editorconfig file."
|
||||
fi
|
||||
|
||||
exit $EXIT_CODE
|
Loading…
Reference in a new issue