#!/usr/bin/env sh
set -u
max_attempts="${MOON_UPDATE_MAX_ATTEMPTS:-3}"
attempt=1
while [ "$attempt" -le "$max_attempts" ]; do
if moon update; then
exit 0
fi
status="$?"
if [ "$attempt" -ge "$max_attempts" ]; then
printf 'moon update failed after %s attempts\n' "$attempt" >&2
exit "$status"
fi
sleep_seconds=$((attempt * 10))
printf 'moon update failed on attempt %s/%s; retrying in %ss\n' \
"$attempt" "$max_attempts" "$sleep_seconds" >&2
sleep "$sleep_seconds"
attempt=$((attempt + 1))
done