mirror of
https://github.com/Shadowss/TravianZ.git
synced 2026-08-09 21:01:00 +00:00
117 lines
1.9 KiB
Bash
Executable File
117 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
repository_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
cd "$repository_root"
|
|
|
|
lint_php()
|
|
{
|
|
local file
|
|
local linted=0
|
|
|
|
while IFS= read -r -d '' file; do
|
|
# This installer source is a PHP generator template. Its %TOKEN%
|
|
# placeholders are replaced before the generated file is executed.
|
|
if [[ "$file" == "install/data/constant_format.tpl" ]]; then
|
|
continue
|
|
fi
|
|
|
|
php -l "$file" > /dev/null
|
|
linted=$((linted + 1))
|
|
done < <(git ls-files -z -- '*.php' '*.tpl')
|
|
|
|
echo "PHP syntax check passed for ${linted} tracked files."
|
|
}
|
|
|
|
run_php_tests()
|
|
{
|
|
local file
|
|
local tested=0
|
|
|
|
while IFS= read -r -d '' file; do
|
|
if [[ "$file" != *Test.php ]]; then
|
|
continue
|
|
fi
|
|
|
|
echo "Running ${file}"
|
|
php "$file"
|
|
tested=$((tested + 1))
|
|
done < <(git ls-files -z -- 'tests/*.php' 'tests/**/*.php')
|
|
|
|
if [[ "$tested" -eq 0 ]]; then
|
|
echo "No zero-dependency PHP tests found."
|
|
else
|
|
echo "PHP tests passed for ${tested} files."
|
|
fi
|
|
}
|
|
|
|
run_shell_tests()
|
|
{
|
|
local file
|
|
local tested=0
|
|
|
|
while IFS= read -r -d '' file; do
|
|
if [[ "$file" != *.sh ]]; then
|
|
continue
|
|
fi
|
|
|
|
echo "Running ${file}"
|
|
sh -n "$file"
|
|
sh "$file"
|
|
tested=$((tested + 1))
|
|
done < <(git ls-files -z -- 'tests/*.sh' 'tests/**/*.sh')
|
|
|
|
if [[ "$tested" -eq 0 ]]; then
|
|
echo "No shell contract tests found."
|
|
else
|
|
echo "Shell contract tests passed for ${tested} files."
|
|
fi
|
|
}
|
|
|
|
validate_compose()
|
|
{
|
|
if ! command -v docker > /dev/null 2>&1; then
|
|
echo "Docker is required for Compose validation." >&2
|
|
exit 1
|
|
fi
|
|
|
|
docker compose config --quiet
|
|
echo "Docker Compose configuration is valid."
|
|
}
|
|
|
|
usage()
|
|
{
|
|
echo "Usage: $0 {all|php|lint|test|shell|compose}" >&2
|
|
exit 2
|
|
}
|
|
|
|
case "${1:-all}" in
|
|
all)
|
|
lint_php
|
|
run_php_tests
|
|
validate_compose
|
|
run_shell_tests
|
|
;;
|
|
php)
|
|
lint_php
|
|
run_php_tests
|
|
;;
|
|
lint)
|
|
lint_php
|
|
;;
|
|
test)
|
|
run_php_tests
|
|
run_shell_tests
|
|
;;
|
|
shell)
|
|
run_shell_tests
|
|
;;
|
|
compose)
|
|
validate_compose
|
|
;;
|
|
*)
|
|
usage
|
|
;;
|
|
esac
|