#!/bin/bash
set -euo pipefail

php_fpm_pid=""

# Called externally, but shellcheck does not see that and claims it is unused.
# shellcheck disable=SC2329,SC2317
cleanup() {
	status=$?
	echo "php-fpm stopped! (exit ${status})"
}

# Called externally, but shellcheck does not see that and claims it is unused.
# shellcheck disable=SC2329,SC2317
forward_signal() {
	if [[ -n "${php_fpm_pid}" ]]; then
		kill -TERM "${php_fpm_pid}" 2>/dev/null || true
	fi
}

while pgrep -x php-fpm83 >/dev/null; do
	killall php-fpm83 &>/dev/null
	sleep 0.2
done

trap cleanup EXIT
trap forward_signal INT TERM

echo "Starting /usr/sbin/php-fpm83 -y \"${PHP_FPM_CONFIG_FILE}\" -F (tee stderr to app.php_errors.log)"
php_fpm_cmd=(/usr/sbin/php-fpm83 -y "${PHP_FPM_CONFIG_FILE}" -F)
"${php_fpm_cmd[@]}" 2> >(tee -a "${LOG_APP_PHP_ERRORS}" >&2) &
php_fpm_pid=$!

wait "${php_fpm_pid}"
exit_status=$?
echo -ne " done"
exit $exit_status