ladybird/Meta/Linters/lint_executable_resources.sh
2026-06-06 13:48:43 +02:00

31 lines
1 KiB
Bash
Executable file

#!/usr/bin/env bash
set -eo pipefail
script_path=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
cd "${script_path}/../.." || exit 1
tests_find_args=(
Tests/
\( -name WPT -o -path '*/wpt-import' \) -prune
-or
)
ignored_executable_paths='^(Meta/lint-executable-resources\.sh)$'
if [ "$(uname -s)" = "Darwin" ]; then
# MacOS's find does not support '-executable' OR '-perm /mode'.
BAD_FILES=$(find Base/res/ -type f -perm +111)
BAD_FILES+=$(find "${tests_find_args[@]}" -perm +111 \! -type d -print | grep -Ev "(${ignored_executable_paths}|\\.(sh|py)$)" || true)
else
BAD_FILES=$(find Base/res/ -type f -executable)
BAD_FILES+=$(find "${tests_find_args[@]}" -executable \! -type d -print | grep -Ev "(${ignored_executable_paths}|\\.(sh|py)$)" || true)
fi
if [ -n "${BAD_FILES}" ]
then
echo "These files are marked as executable, but are in directories that do not commonly"
echo "contain executables. Please double-check the permissions of these files:"
echo "${BAD_FILES}" | xargs ls -ld
exit 1
fi