Make sleep-until laptop-sleep-safe
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>
This commit is contained in:
parent
5a5cb420bd
commit
b7c7bab313
1 changed files with 8 additions and 1 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue