#!/usr/bin/env bash
# Deploy P3 grab hotkey tools to office Pi (FIXTURE_HOST_5 / topbox5).
set -euo pipefail
if grep -q $'\r' "${BASH_SOURCE[0]}" 2>/dev/null; then
  sed -i 's/\r$//' "${BASH_SOURCE[0]}"
  exec bash "${BASH_SOURCE[0]}" "$@"
fi

ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
SYNC="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
TIMING="${ROOT}/fixture-timing"
PI_HOST="${PI_HOST:-10.1.10.140}"
PI_USER="${PI_USER:-topbox}"
KEY="${FIXTURE_SSH_KEY:-${HOME}/.ssh/id_ed25519_fixture}"
REMOTE="/home/${PI_USER}/EtherGold/p3-grab"
REMOTE_SYNC="/home/${PI_USER}/EtherGold/sync"

SSH=(ssh -i "${KEY}" -o StrictHostKeyChecking=accept-new "${PI_USER}@${PI_HOST}")
SCP=(scp -i "${KEY}" -o StrictHostKeyChecking=accept-new)

echo "=== deploy P3 grab -> ${PI_USER}@${PI_HOST} ==="
"${SSH[@]}" "mkdir -p ${REMOTE}/tools ~/p3-grabs"

"${SCP[@]}" \
  "${TIMING}/tools/p3_grab_capture.py" \
  "${TIMING}/tools/p3_grab_hotkey.py" \
  "${PI_USER}@${PI_HOST}:${REMOTE}/tools/"

"${SCP[@]}" \
  "${TIMING}/run_p3_grab_hotkey.sh" \
  "${PI_USER}@${PI_HOST}:${REMOTE}/"

"${SCP[@]}" \
  "${SYNC}/p3_grab_sync.sh" \
  "${SYNC}/dropbox_paths.sh" \
  "${PI_USER}@${PI_HOST}:${REMOTE_SYNC}/"

"${SSH[@]}" bash -s <<EOF
set -e
sed -i 's/\r$//' ${REMOTE}/run_p3_grab_hotkey.sh ${REMOTE}/tools/*.py ${REMOTE_SYNC}/p3_grab_sync.sh ${REMOTE_SYNC}/dropbox_paths.sh
chmod +x ${REMOTE}/run_p3_grab_hotkey.sh ${REMOTE_SYNC}/p3_grab_sync.sh
python3 -c 'import serial' || { echo 'FATAL: pyserial missing on Pi'; exit 1; }
if ! python3 -c 'import evdev' 2>/dev/null; then
  sudo apt-get install -y python3-evdev
fi
python3 -c 'import evdev' && echo 'evdev: ok'
ls -la ${REMOTE}/ ${REMOTE}/tools/
echo "Start on Pi: ${REMOTE}/run_p3_grab_hotkey.sh"
EOF

echo "Done."
