Add sysfixtime init script, replacement of luci_fixtime
authorJo-Philipp Wich <jow@openwrt.org>
Wed, 29 Jan 2014 13:17:03 +0000 (13:17 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Wed, 29 Jan 2014 13:17:03 +0000 (13:17 +0000)
Simply scan for the most recent file in /etc and set
system time to this file modification time if it's in the future
It allow some time dependent program to work immediatly
without waiting for ntpd to sync

v1: v2: bad approach
v3: simply scan /etc, thanks to Bastian Bittorf for the idea
v4: use sort -n, thanks to Catalin Patulea
v5: use [] instead of [[]], thanks to Andreas Mohr
v6: use openwrt style, thanks to Bastian Bittorf

Signed-off-by: Etienne CHAMPETIER <etienne.champetier@free.fr>
SVN-Revision: 39422

package/base-files/files/etc/init.d/sysfixtime [new file with mode: 0755]

diff --git a/package/base-files/files/etc/init.d/sysfixtime b/package/base-files/files/etc/init.d/sysfixtime
new file mode 100755 (executable)
index 0000000..525d765
--- /dev/null
@@ -0,0 +1,13 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2013-2014 OpenWrt.org
+
+START=00
+
+boot() {
+       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"
+}
+