Revert "base-files: sysfixtime exclude dnsmasq.time"
[librecmc/librecmc.git] / package / base-files / files / etc / init.d / sysfixtime
index 525d765758d06c3e1cb75e9866a008781bc2f467..ab946f6518f6f6eb373313a897ca47c9682d5cca 100755 (executable)
@@ -2,12 +2,24 @@
 # Copyright (C) 2013-2014 OpenWrt.org
 
 START=00
+STOP=90
+
+RTC_DEV=/dev/rtc0
+HWCLOCK=/sbin/hwclock
 
 boot() {
+       start && exit 0
+
        local curtime="$(date +%s)"
-       local maxtime="$(find /etc -type f -exec date +%s -r {} \; | sort -nr | head -n1)"
-       [ $curtime -lt $maxtime ] && \
-               date -s @$maxtime && \
-               logger -t sysfixtime -p daemon.notice "Time fixed"
+       local maxtime="$(find /etc -type f -exec date -r {} +%s \; | sort -nr | head -n1)"
+       [ $curtime -lt $maxtime ] && date -s @$maxtime
 }
 
+start() {
+       [ -e "$RTC_DEV" ] && [ -e "$HWCLOCK" ] && $HWCLOCK -s -f $RTC_DEV
+}
+
+stop() {
+       [ -e "$RTC_DEV" ] && [ -e "$HWCLOCK" ] && $HWCLOCK -w -f $RTC_DEV && \
+               logger -t sysfixtime "saved '$(date)' to $RTC_DEV"
+}