#!/bin/sh
set -e

XML="$(/usr/bin/mktemp)"
trap 'rm -rf "$XML"' EXIT

command=$1

while true; do
	if eval $command > "$XML"; then
		status=$(plutil -extract notarization-info.Status xml1 -o - "$XML"|sed -n 's/.*<string>\(.*\)<\/string>.*/\1/p')
		case $status in
			'in progress') sleep 20 ;;
			'success')     cat "$XML"; exit 0 ;;
			*)             echo "*** Unexpected status: $status"|cat >&2 - "$XML"; exit 1 ;;
		esac
	else
		echo "*** Unexpected return code: $? (retry in 10s)"|cat >&2 - "$XML"
		sleep 10
	fi
done
