summaryrefslogtreecommitdiff
path: root/etc/rc.d/rtclocaltime
blob: 9aba8b8c3b24017e64b098d092a88f3b17cb090e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#! /bin/sh

# PROVIDE: rtclocaltime
# REQUIRE: mountcritremote
# BEFORE:  ntpdate ntpd

. /etc/rc.subr

name="rtclocaltime"
rcvar=$name
start_cmd="rtclocaltime_start"
stop_cmd=":"

rtclocaltime_start()
{
	rtcoff=$(date '+%z' | awk '{
		offset = int($1);
		if (offset < 0) {
			sign = -1;
			offset = -offset;
		} else {
			sign = 1;
		}
		minutes = offset % 100;
		hours = offset / 100;
		offset = sign * (hours * 60 + minutes);
		print offset;
	}')
	sysctl -w kern.rtc_offset=$((-1 * $rtcoff))
}

load_rc_config $name
run_rc_command "$1"