From 9217651875c69801a314b4eabe0b05015883abe5 Mon Sep 17 00:00:00 2001 From: Andrew Hurley Date: Sat, 7 Aug 2021 23:00:14 +1000 Subject: [PATCH] Update sync.sh --- sync.sh | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/sync.sh b/sync.sh index 4ec13d1..dbf5d9d 100644 --- a/sync.sh +++ b/sync.sh @@ -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