#!/bin/sh
# Host-verifiable checks: pinned source checksum, Go formatting, vet, and tests
# (including the real-rsync-through-rsh end-to-end). Needs Go and rsync; no
# Android toolchain. This is what runs on every push.
set -eu

root=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
. "$root/versions"

if [ -f "$root/rsync/rsync-${RSYNC_VERSION}.tar.gz" ]; then
	echo "ci: verifying pinned rsync checksum"
	( cd "$root/rsync" && sha256sum -c "rsync-${RSYNC_VERSION}.tar.gz.sha256" )
fi

echo "ci: gofmt"
unformatted=$(gofmt -l "$root/rsh")
if [ -n "$unformatted" ]; then
	echo "ci: gofmt needed for:" >&2
	echo "$unformatted" >&2
	exit 1
fi

echo "ci: go vet"
( cd "$root/rsh" && go vet ./... )

echo "ci: go test"
( cd "$root/rsh" && go test ./... )

echo "ci: ok"
