44 lines
939 B
Bash
44 lines
939 B
Bash
#!/bin/sh
|
|
# Read-only syntax check: php -l over app/config/database/routes,
|
|
# plus a guard for the historical return -> retun typo.
|
|
#
|
|
# Usage (inside an environment that has php, e.g. the 1Panel php-fpm container):
|
|
# sh scripts/lint-all.sh /www/sites/lgp-api/index/lgp-admin-plus-api
|
|
# This script never modifies files.
|
|
set -eu
|
|
|
|
BASE=${1:-}
|
|
if [ -z "$BASE" ]; then
|
|
BASE=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
|
|
fi
|
|
cd "$BASE"
|
|
|
|
TARGETS="app config database routes"
|
|
|
|
echo "== syntax =="
|
|
fail=0
|
|
count=0
|
|
for f in $(find $TARGETS -name '*.php' | sort); do
|
|
count=$((count + 1))
|
|
out=$(php -l "$f" 2>&1 | grep -v swoole || true)
|
|
case "$out" in
|
|
*"No syntax errors"*) ;;
|
|
*) echo "FAIL $f"; echo "$out"; fail=1 ;;
|
|
esac
|
|
done
|
|
echo "checked $count files"
|
|
|
|
echo "== retun typo =="
|
|
if grep -rn "retun" $TARGETS; then
|
|
fail=1
|
|
else
|
|
echo "none"
|
|
fi
|
|
|
|
if [ "$fail" -eq 0 ]; then
|
|
echo "ALL OK"
|
|
else
|
|
echo "HAS ERRORS"
|
|
exit 1
|
|
fi
|