31 lines
1 KiB
Bash
Executable file
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
|