2021-05-19 18:31:20 +01:00
|
|
|
#!/bin/sh
|
|
|
|
|
2023-02-21 13:38:22 +00:00
|
|
|
# This comment is used to simplify checking local copies of the script. Bump
|
|
|
|
# this number every time a remarkable change is made to this script.
|
|
|
|
#
|
2023-09-07 13:05:21 +01:00
|
|
|
# AdGuard-Project-Version: 5
|
2023-02-21 13:38:22 +00:00
|
|
|
|
2021-05-19 18:31:20 +01:00
|
|
|
verbose="${VERBOSE:-0}"
|
|
|
|
readonly verbose
|
|
|
|
|
|
|
|
if [ "$verbose" -gt '0' ]
|
|
|
|
then
|
|
|
|
set -x
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Set $EXIT_ON_ERROR to zero to see all errors.
|
|
|
|
if [ "${EXIT_ON_ERROR:-1}" -eq '0' ]
|
|
|
|
then
|
|
|
|
set +e
|
|
|
|
else
|
|
|
|
set -e
|
|
|
|
fi
|
|
|
|
|
|
|
|
# We don't need glob expansions and we want to see errors about unset variables.
|
|
|
|
set -f -u
|
|
|
|
|
2023-02-21 13:38:22 +00:00
|
|
|
# Source the common helpers, including not_found.
|
|
|
|
. ./scripts/make/helper.sh
|
2021-05-19 18:31:20 +01:00
|
|
|
|
2023-04-06 12:21:46 +01:00
|
|
|
# Simple analyzers
|
|
|
|
|
|
|
|
# trailing_newlines is a simple check that makes sure that all plain-text files
|
|
|
|
# have a trailing newlines to make sure that all tools work correctly with them.
|
2023-09-07 13:05:21 +01:00
|
|
|
trailing_newlines() (
|
2023-04-06 12:21:46 +01:00
|
|
|
nl="$( printf "\n" )"
|
|
|
|
readonly nl
|
|
|
|
|
2023-04-13 17:13:11 +01:00
|
|
|
# NOTE: Adjust for your project.
|
2023-04-06 12:21:46 +01:00
|
|
|
git ls-files\
|
|
|
|
':!*.png'\
|
|
|
|
':!*.tar.gz'\
|
|
|
|
':!*.zip'\
|
|
|
|
| while read -r f
|
|
|
|
do
|
2023-09-07 13:05:21 +01:00
|
|
|
final_byte="$( tail -c -1 "$f" )"
|
|
|
|
if [ "$final_byte" != "$nl" ]
|
2023-04-06 12:21:46 +01:00
|
|
|
then
|
|
|
|
printf '%s: must have a trailing newline\n' "$f"
|
|
|
|
fi
|
|
|
|
done
|
2023-09-07 13:05:21 +01:00
|
|
|
)
|
2023-04-06 12:21:46 +01:00
|
|
|
|
2023-08-23 18:10:54 +01:00
|
|
|
# trailing_whitespace is a simple check that makes sure that there are no
|
|
|
|
# trailing whitespace in plain-text files.
|
|
|
|
trailing_whitespace() {
|
|
|
|
# NOTE: Adjust for your project.
|
|
|
|
git ls-files\
|
|
|
|
':!*.bmp'\
|
|
|
|
':!*.jpg'\
|
|
|
|
':!*.mmdb'\
|
|
|
|
':!*.png'\
|
|
|
|
':!*.svg'\
|
|
|
|
':!*.tar.gz'\
|
|
|
|
':!*.webp'\
|
|
|
|
':!*.zip'\
|
|
|
|
| while read -r f
|
|
|
|
do
|
|
|
|
grep -e '[[:space:]]$' -n -- "$f"\
|
|
|
|
| sed -e "s:^:${f}\::" -e 's/ \+$/>>>&<<</'
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
2023-04-06 12:21:46 +01:00
|
|
|
run_linter -e trailing_newlines
|
|
|
|
|
2023-08-23 18:10:54 +01:00
|
|
|
run_linter -e trailing_whitespace
|
|
|
|
|
|
|
|
git ls-files -- '*.conf' '*.md' '*.txt' '*.yaml' '*.yml'\
|
|
|
|
'client/src/__locales/en.json'\
|
2023-02-21 13:38:22 +00:00
|
|
|
| xargs misspell --error\
|
|
|
|
| sed -e 's/^/misspell: /'
|