20 lines
1.3 KiB
Bash
Executable File
20 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
SERVER="$ROOT/rsync-studio-licensing"
|
|
[[ -d "$SERVER" ]] || { echo 'Licensing Server directory is missing.' >&2; exit 1; }
|
|
if command -v php >/dev/null 2>&1; then
|
|
while IFS= read -r -d '' file; do php -l "$file" >/dev/null; done < <(find "$SERVER" -name '*.php' -type f -print0)
|
|
echo 'OK: all Stage 4 PHP files pass php -l'
|
|
else
|
|
echo 'WARN: PHP is unavailable; skipped php -l checks.'
|
|
fi
|
|
bash -n "$SERVER/install-overlay.sh"
|
|
! grep -RniE --exclude='*.md' --exclude='*.example' '(PRIVATE[_ -]?KEY|PADDLE_WEBHOOK_SECRET|LEMON_SQUEEZY_WEBHOOK_SECRET)[[:space:]]*=[[:space:]]*[A-Za-z0-9+/=_-]{20,}' "$SERVER" >/dev/null || { echo 'Possible committed secret detected.' >&2; exit 1; }
|
|
grep -q "sodium_crypto_sign_detached" "$SERVER/app/Services/Licensing/LicenseSigner.php"
|
|
grep -q "hash_equals" "$SERVER/app/Services/Payments/PaddleWebhookVerifier.php"
|
|
grep -q "hash_equals" "$SERVER/app/Services/Payments/LemonSqueezyWebhookVerifier.php"
|
|
grep -q "lockForUpdate" "$SERVER/app/Http/Controllers/Api/LicenseActivationController.php"
|
|
grep -q "license_delivery_outbox" "$SERVER/database/migrations/2026_09_08_200000_create_rsync_studio_licensing_tables.php"
|
|
echo 'Stage 4 licensing-server static checks passed.'
|