#!/bin/bash offer_run() { local run read -r -p "For more output, run ${*}. Run it now (Y/n)? " run case "${run:0:1}" in n|N) exit 2 ;; *) eval "${@}" ;; esac exit 1 } set -e if (php-cs-fixer fix --dry-run --config=.php-cs-fixer.php >/dev/null 2>&1); then echo '✅ php-cs-fixer OK' else read -r -p "⚠️ php-cs-fixer found issues. Fix (Y/n)? " fix case "${fix:0:1}" in n|N) echo '❌ php-cs-fixer FAIL' offer_run php-cs-fixer fix --config=.php-cs-fixer.php ;; *) if (php-cs-fixer fix --config=.php-cs-fixer.php >/dev/null 2>&1); then echo '✅ php-cs-fixer OK' else echo '❌ php-cs-fixer FAIL' offer_run php-cs-fixer fix --config=.php-cs-fixer.php fi ;; esac fi if (./vendor/bin/phpstan analyse >/dev/null 2>&1); then echo '✅ PHPStan OK' else echo '❌ PHPStan FAIL' offer_run ./vendor/bin/phpstan analyse fi if (./vendor/bin/pest >/dev/null 2>&1); then echo '✅ PEST OK' else echo '❌ PEST FAIL' offer_run ./vendor/bin/pest fi echo '==================' echo '✅ Everything OK'