#!/bin/bash
# Wrapper to run Atualizar_Github.sh with sane environment for composer/git when run from systemd or www-data

set -euo pipefail

export HOME=/root
export COMPOSER_HOME=${COMPOSER_HOME:-/root/.composer}

LOG=/var/log/atualizar_github.log
LOCK_FILE=/var/lock/atualizar_github.lock
MODE="${1:-deploy}"
LOOKUP_SOURCE_ARG="${2:-}"

mkdir -p "$(dirname "$LOCK_FILE")"
exec 9>"$LOCK_FILE"
if ! flock -n 9; then
	echo "=== atualizar_wrapper skipped at $(date --iso-8601=seconds): another instance is running ===" >> "$LOG"
	exit 0
fi

for ssh_key in \
	/root/.ssh/id_ed25519_github_nopass \
	/root/.ssh/id_ed25519_xslt_droplet_nopass \
	/root/.ssh/id_ed25519_github \
	/root/.ssh/id_ed25519_xslt_droplet \
	/root/.ssh/id_ed25519 \
	/root/.ssh/id_rsa
do
	if [ -f "$ssh_key" ]; then
		export GIT_SSH_COMMAND="ssh -i $ssh_key -o IdentitiesOnly=yes -o BatchMode=yes"
		echo "Using SSH key: $ssh_key" >> "$LOG"
		break
	fi
done

git config --global --add safe.directory /var/www/alvaroguedes.lat || true
git config --global --add safe.directory /root/Xslt || true

echo "=== atualizar_wrapper starting at $(date --iso-8601=seconds) ===" >> "$LOG"
case "$MODE" in
	remote_tables)
		if [ -n "$LOOKUP_SOURCE_ARG" ]; then
			LOOKUP_SOURCE_FILE="$LOOKUP_SOURCE_ARG" bash /var/www/alvaroguedes.lat/Atualizar_Github_Remoto.sh tables >> "$LOG" 2>&1 || rc=$?
		else
			bash /var/www/alvaroguedes.lat/Atualizar_Github_Remoto.sh tables >> "$LOG" 2>&1 || rc=$?
		fi
		;;
	deploy|*)
		bash /var/www/alvaroguedes.lat/Atualizar_Github.sh >> "$LOG" 2>&1 || rc=$?
		;;
esac
rc=${rc:-0}
echo "=== atualizar_wrapper finished at $(date --iso-8601=seconds) rc=$rc ===" >> "$LOG"
exit $rc
