Update sync.sh

This commit is contained in:
Andrew Hurley 2021-08-07 23:00:14 +10:00 committed by GitHub
parent db347e578a
commit 9217651875
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 31 additions and 3 deletions

34
sync.sh
View File

@ -17,7 +17,7 @@ if [ -n "$SSLMATE_API_KEY_FILE" ]; then
fi
fi
if [ "x$SSLMATE_API_KEY" == "x" ]; then
if [[ -z "$SSLMATE_API_KEY" ]]; then
echo "Missing sslmate api key from environment. Variable name must be SSLMATE_API_KEY"
exit 1
fi
@ -63,8 +63,36 @@ fi
# Sync
while true; do
sslmate download --all
sleep 60
# Download
echo \
"$(date): Attemping to download..."
if sslmate download --all; then
echo "$(date) Downloaded new certificates! Touch NEW in 'keys' directory"
touch /etc/sslmate/certs/NEW
fi
# Sleep
for expiration in $(sslmate list -z --columns=expiration); do
timeleft=$(( expiration - $(date +"%s") ))
echo -n "timeleft: $timeleft "
if (( timeleft <= 0 )); then
r=$((RANDOM%4))
if [[ -v $sleeptime ]]; then
sleeptime=$(( sleeptime > r ? r : sleeptime ))
else
sleeptime=$r
fi
else
r=$((timeleft*9/10))
if [[ -v $sleeptime ]]; then
sleeptime=$(( sleeptime > r ? r : sleeptime ))
else
sleeptime=$r
fi
fi
done
echo "- sleeping for $sleeptime seconds"
sleep $sleeptime
done
exit 0