#! /bin/bash

TARGET="$1"
shift

buildid="$(( hostname; id -u; pwd ) | openssl sha1 | sed 's@^.*= *@@')"
workdir="/tmp/work-kitcreator-${buildid}"

hostUp='0'
for try in {1..3}; do
	checkOk="$(timeout 300 ssh -q "${TARGET}" 'echo ok' 2>/dev/null)"

	if [ "${checkOk}" = 'ok' ]; then
		hostUp='1'
		break
	fi

	sleep 10
done

if [ "${hostUp}" != '1' ]; then
	echo "Unable to establish a link to the remote system." >&2

	exit 1
fi

rsync -aq --delete -e ssh . "${TARGET}:${workdir}/" || exit 1

(
	newArgv=("$@"); declare -p newArgv
	declare -p workdir
	export
	cat << \_EOF_
cd "${workdir}" || exit 1
export PATH="${PATH}:/usr/local/bin:/usr/bin"
./kitcreator "${newArgv[@]}"
exit "$?"
_EOF_
) | ssh "${TARGET}" bash -s
retval="$?"

rm -f */build.log
ssh "${TARGET}" "workdir='${workdir}'; "'cd "${workdir}" && tar -cf - tclkit-* libtclkit* */build.log 2>/dev/null' | tar -xf -

# Clean-up if appropriate
case "$(pwd)" in
	/home/rkeene/*)
		;;
	*)
		ssh "${TARGET}" "workdir='${workdir}'; "'rm -rf "${workdir}"'
		;;
esac

exit "${retval}"
