From 51fd91bfc11561de6c85c06e9fe024726b54c110 Mon Sep 17 00:00:00 2001 From: Ivan Tham Date: Thu, 22 Sep 2016 13:07:02 +0800 Subject: [PATCH 1/4] Minor typo error --- usr/bin/webc-config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr/bin/webc-config b/usr/bin/webc-config index f63d1df03..c4d1092dd 100755 --- a/usr/bin/webc-config +++ b/usr/bin/webc-config @@ -197,7 +197,7 @@ EOF Description=Wake up! Or not! [Service] -ExecStart=phylock -d & +ExecStart=physlock -d & [Install] WantedBy=sleep.target From 3f3c30d5fe47e84aa267e29f824a97068b4ff1d9 Mon Sep 17 00:00:00 2001 From: Ivan Tham Date: Fri, 23 Sep 2016 01:00:11 +0800 Subject: [PATCH 2/4] Thoughly revised wake function - New syntax for multiple timer "^" as "and" seperator - Eg. wake=from +last^from +last^from +last - All parts tested except the ^ part - Found out some bugs in web generator - Removed screen locker physlock --- usr/bin/webc-config | 163 +++++++++++++++++++++++--------------------- 1 file changed, 86 insertions(+), 77 deletions(-) diff --git a/usr/bin/webc-config b/usr/bin/webc-config index f63d1df03..f79876558 100755 --- a/usr/bin/webc-config +++ b/usr/bin/webc-config @@ -21,6 +21,7 @@ fi . "$config_runtime" + for x in $(cmdline) do case $x in @@ -100,6 +101,91 @@ do esac done + +if cmdline_has wake +then + i=0 + for w in "$(cmdline_get wake | tr ^ \\n)" + do + sleep_time=0 + for t in $(echo ${w#*+} | grep -o '[0-9]*[A-Za-z]') + do + case $t in + *[Ww]) sleep_time=$(( $sleep_time + ${t%[Ww]} * 7 * 24 * 60 * 60 ));; + *[Dd]) sleep_time=$(( $sleep_time + ${t%[Dd]} * 24 * 60 * 60 ));; + *[Hh]) sleep_time=$(( $sleep_time + ${t%[Hh]} * 60 * 60 ));; + *[Mm]) sleep_time=$(( $sleep_time + ${t%[Mm]} * 60 ));; + *[Ss]) sleep_time=$(( $sleep_time + ${t%[Ss]} ));; + esac + done + wday=$(echo "$w" | grep -o '[0-9]\+:[0-9]\+\s') # Eg. 10:00 + dura=$(( $(date +%s --date="$wday") + $sleep_time )) # epoch + + wake[$i]=${w%+*} # Eg. Sun 10:0 + unwake[$i]=$(date +"${w%$wday*} %H:%M" -d "@$dura") # Eg. Mon-Fri 20:00 + logger "Waking up system at ${w% +*} and unwake at $unwake" + i=$(( $i + 1 )) + done + unset i + + cat > /etc/systemd/system/wake.timer < /etc/systemd/system/unwake.timer < /etc/systemd/system/wake.service < /etc/systemd/system/unwake.service <> /etc/systemd/system/wake.service + + systemctl daemon-reload + systemctl start unwake.timer + systemctl start wake.timer +else + systemctl stop unwake.timer + systemctl stop wake.timer +fi + + if cmdline_has debug then sshkey=$(cmdline_get ssh) @@ -135,83 +221,6 @@ then fi -if cmdline_has wake -then - wake=$(cmdline_get wake) - wake="${wake/_/ }" # TODO: Use &20 instead of _ - physlock -d & # Start screen locker first - - for t in $(echo ${wake#*+} | grep -o '[0-9]*[A-Za-z]') - do - case $t in - *[Ww]) sleep_time=$(( $sleep_time + ${t%[Ww]} * 7 * 24 * 60 * 60));; - *[Dd]) sleep_time=$(( $sleep_time + ${t%[Dd]} * 24 * 60 *60));; - *[Hh]) sleep_time=$(( $sleep_time + ${t%[Hh]} * 60 * 60));; - *[Mm]) sleep_time=$(( $sleep_time + ${t%[Mm]} * 60));; - *[Ss]) sleep_time=$(( $sleep_time + ${t%[Ss]} ));; - esac - done - - wday=$(echo $wake | grep -o '\s.*:.*\s') # Eg. 10:00 - tstart=$(date +%s --date="$wday") # Time to start (epoch) - tstop=$(( $tstart + $sleep_time )) # Time to stop (epoch) - unwake=$(date +"${wake%$wday*} %H:%M:%S" --date="@$tstop") # Eg. Mon-Fri 20:00 - - logger "Waking up system at ${wake%+*} and unwake at $unwake" - - if test "$wake" - then - cat > /etc/systemd/system/wake.timer < /etc/systemd/system/unwake.timer < /etc/systemd/system/wake.service < /etc/systemd/system/unwake.service < Date: Sun, 6 Nov 2016 23:17:21 +0800 Subject: [PATCH 3/4] Final update for wake= --- usr/bin/webc-config | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/usr/bin/webc-config b/usr/bin/webc-config index f79876558..56eedf139 100755 --- a/usr/bin/webc-config +++ b/usr/bin/webc-config @@ -105,25 +105,25 @@ done if cmdline_has wake then i=0 - for w in "$(cmdline_get wake | tr ^ \\n)" + IFS=$'\n'; for w in $(cmdline_get wake | tr ^ \\n) do sleep_time=0 for t in $(echo ${w#*+} | grep -o '[0-9]*[A-Za-z]') do case $t in - *[Ww]) sleep_time=$(( $sleep_time + ${t%[Ww]} * 7 * 24 * 60 * 60 ));; - *[Dd]) sleep_time=$(( $sleep_time + ${t%[Dd]} * 24 * 60 * 60 ));; - *[Hh]) sleep_time=$(( $sleep_time + ${t%[Hh]} * 60 * 60 ));; - *[Mm]) sleep_time=$(( $sleep_time + ${t%[Mm]} * 60 ));; + *[Ww]) sleep_time=$(( $sleep_time + ${t%[Ww]}*60*60*24*7 ));; + *[Dd]) sleep_time=$(( $sleep_time + ${t%[Dd]}*60*60*24 ));; + *[Hh]) sleep_time=$(( $sleep_time + ${t%[Hh]}*60*60 ));; + *[Mm]) sleep_time=$(( $sleep_time + ${t%[Mm]}*60 ));; *[Ss]) sleep_time=$(( $sleep_time + ${t%[Ss]} ));; esac done wday=$(echo "$w" | grep -o '[0-9]\+:[0-9]\+\s') # Eg. 10:00 dura=$(( $(date +%s --date="$wday") + $sleep_time )) # epoch - wake[$i]=${w%+*} # Eg. Sun 10:0 - unwake[$i]=$(date +"${w%$wday*} %H:%M" -d "@$dura") # Eg. Mon-Fri 20:00 - logger "Waking up system at ${w% +*} and unwake at $unwake" + wake[$i]=${w% +*} # Eg. Sun 10:0 + unwake[$i]=$(date +"${w% $wday*} %H:%M" -d "@$dura") # Eg. Mon-Fri 20:00 + logger "Wake at ${wake[$i]} till ${unwake[$i]}" i=$(( $i + 1 )) done unset i @@ -133,7 +133,7 @@ then Description=Starts screen waking timer [Timer] -$(echo "${wake[@]}" | sed 's/ /\n/g' | sed 's/^/OnCalendar=/') +$(echo "${wake[*]}" | sed 's/^/OnCalendar=/') Persistent=true [Install] @@ -144,7 +144,7 @@ EOF Description=Stop screen waking timer [Timer] -$(echo "${unwake[@]}" | sed 's/ /\n/g' | sed 's/^\s//' | sed 's/^/OnCalendar=/') +$(echo "${unwake[*]}" | sed 's/^/OnCalendar=/') Persistent=true [Install] From 7fb9bff9e0e564df8fbbf6028f92971f2a284b67 Mon Sep 17 00:00:00 2001 From: Ivan Tham Date: Sun, 6 Nov 2016 23:18:46 +0800 Subject: [PATCH 4/4] Remove uneeded /bootfat and /bin files --- .../System Volume Information/IndexerVolumeGuid | Bin 76 -> 0 bytes usr/bin/physlock | Bin 14224 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100755 boot/System Volume Information/IndexerVolumeGuid delete mode 100755 usr/bin/physlock diff --git a/boot/System Volume Information/IndexerVolumeGuid b/boot/System Volume Information/IndexerVolumeGuid deleted file mode 100755 index 8886db0080aaa616ba61f670f3cff743de9784fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76 zcmWNHSqi`)6vT3&2eqx+XGKp{yt`o_voJq5m4`%8Ll2hz%8-RmhU{b+J}%c}pY~?1 HE}hK*Q-KJ) diff --git a/usr/bin/physlock b/usr/bin/physlock deleted file mode 100755 index 7847e3cc1aabe9d264cd7c5ea4f93d9692dce170..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14224 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