#!/bin/bash

delay=1
for (( tries=7; tries > 0; tries-- )); do
    rsyncout=$(LC_ALL=C LANG=C rsync --stats "$@" 2>&1)
    ret=$?
    if (( ret == 0 )) && \
        grep -qE "Number of files transferred:[[:space:]]*0$" <<< "$rsyncout"
    then
        break
    fi
    sleep $delay
    (( delay *= 2 ))
done
if (( ret != 0 )); then
    echo "rsync failed. Output from last run:"
    printf "%s\n" "$rsyncout"
    exit $ret
fi
if (( tries == 0 )); then
    echo "rsync failed to reach stability"
    exit 1
fi
exit 0

