diff --git a/bin/sleep-until b/bin/sleep-until index 8f03d0b..1dcdff6 100755 --- a/bin/sleep-until +++ b/bin/sleep-until @@ -1,6 +1,8 @@ #!/bin/bash set -euo pipefail +default_sleep=10 + source ${HOME}/bin/script_framework.sh time=${1:-} @@ -9,5 +11,10 @@ time=${1:-} tdiff=$(($(date -d "$1" +%s) - $(date +%s))) [ $tdiff -gt 0 ] || tdiff=$((tdiff + 86400)) +ttime=$(date -d "now + ${tdiff} seconds" +%s) + step "Sleeping ${tdiff}s until $(date -d "now + ${tdiff} seconds" "+%Y-%m-%d %H:%M:%S")..." -sleep ${tdiff} +while [ $(date +%s) -lt $ttime ]; do + tremain=$(( ttime - $(date +%s) )) + [ $tremain -gt $default_sleep ] && sleep $default_sleep || sleep $tremain +done