aboutsummaryrefslogtreecommitdiff
path: root/init.d.FreeBSD
diff options
context:
space:
mode:
Diffstat (limited to 'init.d.FreeBSD')
-rw-r--r--init.d.FreeBSD/clock79
1 files changed, 79 insertions, 0 deletions
diff --git a/init.d.FreeBSD/clock b/init.d.FreeBSD/clock
new file mode 100644
index 00000000..85b47fa8
--- /dev/null
+++ b/init.d.FreeBSD/clock
@@ -0,0 +1,79 @@
+#!/sbin/runscript
+# Copyright 2007 Roy Marples
+# All rights reserved
+
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+
+extra_commands="save"
+
+description="Sets the local clock to UTC or Local Time."
+description_save="Saves the current time in the BIOS."
+
+clock=${clock:-${CLOCK:-UTC}}
+if [ "${clock}" = "UTC" ]; then
+ utc="UTC"
+else
+ utc="Local Time"
+fi
+
+depend() {
+ # BSD adjkerntz needs to be able to write to /etc
+ if [ "${clock}" = "UTC" -a -e /etc/wall_cmos_clock ] ||
+ [ "${clock}" != "UTC" -a ! -e /etc/wall_cmos_clock ]; then
+ need checkroot
+ fi
+}
+
+start() {
+ ebegin "Starting the System Clock Adjuster [${utc}]"
+ if [ "${clock}" != "UTC" ]; then
+ echo >/etc/wall_cmos_clock
+ start-stop-daemon --start --exec /sbin/adjkerntz -- -i
+ else
+ rm -f /etc/wall_cmos_clock
+ /sbin/adjkerntz -i
+ fi
+ eend $?
+}
+
+save() {
+ ebegin "Setting hardware clock using the system clock [${utc}]"
+ adjkerntz -a
+ eend $?
+}
+
+stop() {
+ # Don't tweak the hardware clock on LiveCD halt.
+ if yesno "${clock_systohc:-${CLOCK_SYSTOHC}}"; then
+ [ -z "${CDBOOT}" ] && save
+ fi
+
+ ebegin "Stopping the System Clock Adjuster"
+ if start-stop-daemon --test --quiet --stop --exec /sbin/adjkerntz; then
+ start-stop-daemon --stop --exec /sbin/adjkerntz
+ eend $?
+ else
+ eend 0
+ fi
+}
+
+# vim: set ts=4 :