#!/bin/sh
set -e

BINS="tp tpd"
HOSTS="hetzner m0x"
SRC=target/release
DEST=/usr/local/bin

# build
echo "==> building release"
cargo build --release

LOCAL_HASH=$(sha256 "$SRC/tpd" | awk '{print $NF}')
echo "==> local tpd: $LOCAL_HASH"

# deploy to each host in parallel
for h in $HOSTS; do
	(
		echo "==> $h: uploading"
		scp -q $SRC/tp $SRC/tpd "$h:/tmp/"
		ssh "$h" "doas mv /tmp/tp /tmp/tpd $DEST/"

		REMOTE_HASH=$(ssh "$h" "sha256 $DEST/tpd" | awk '{print $NF}')
		if [ "$LOCAL_HASH" = "$REMOTE_HASH" ]; then
			echo "==> $h: ok ($REMOTE_HASH)"
		else
			echo "==> $h: MISMATCH! $REMOTE_HASH"
			exit 1
		fi

		# echo "==> $h: restarting tpd"
		# ssh "$h" "doas rcctl restart tpd"
	) &
done

wait
echo "==> done"
