1 1.1 martin #! /bin/sh 2 1.1 martin 3 1.1 martin # PROVIDE: rtclocaltime 4 1.1 martin # REQUIRE: mountcritremote 5 1.1 martin # BEFORE: ntpdate ntpd 6 1.1 martin 7 1.1 martin . /etc/rc.subr 8 1.1 martin 9 1.1 martin name="rtclocaltime" 10 1.1 martin rcvar=$name 11 1.1 martin start_cmd="rtclocaltime_start" 12 1.1 martin stop_cmd=":" 13 1.1 martin 14 1.1 martin rtclocaltime_start() 15 1.1 martin { 16 1.1 martin rtcoff=$(date '+%z' | awk '{ 17 1.1 martin offset = int($1); 18 1.1 martin if (offset < 0) { 19 1.1 martin sign = -1; 20 1.1 martin offset = -offset; 21 1.1 martin } else { 22 1.1 martin sign = 1; 23 1.1 martin } 24 1.1 martin minutes = offset % 100; 25 1.1 martin hours = offset / 100; 26 1.1 martin offset = sign * (hours * 60 + minutes); 27 1.1 martin print offset; 28 1.1 martin }') 29 1.1 martin sysctl -w kern.rtc_offset=$((-1 * $rtcoff)) 30 1.1 martin } 31 1.1 martin 32 1.1 martin load_rc_config $name 33 1.1 martin run_rc_command "$1" 34