by not waiting for the whole time at once but sleeping in chunks which then would wake up the device even when it slept most of the time-diff Signed-off-by: Knut Ahlers <knut@ahlers.me>
20 lines
532 B
Bash
Executable file
20 lines
532 B
Bash
Executable file
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
default_sleep=10
|
|
|
|
source ${HOME}/bin/script_framework.sh
|
|
|
|
time=${1:-}
|
|
[ -z "${time}" ] && fail "No time specified"
|
|
|
|
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")..."
|
|
while [ $(date +%s) -lt $ttime ]; do
|
|
tremain=$(( ttime - $(date +%s) ))
|
|
[ $tremain -gt $default_sleep ] && sleep $default_sleep || sleep $tremain
|
|
done
|