#!/bin/sh
case "$1" in
    start)
	rtc="`cat /sys/class/rtc/rtc0/since_epoch`"
	
	system="`perl -e 'printf("%d\n", (16298/16299)*$ARGV[0] + 8 + 76283.33539);' $rtc`"
	system_old="`date -u +%s`"
	diff="`expr $system - $system_old`"

	echo "Correcting system clock by $diff seconds"
	date -u --set @$system
	;;
    set)
	system=`date +%s`
	rtc="`perl -e 'printf("%d\n", int(0.5 + (16299/16298)*($ARGV[0] - 8 - 76283.33539)));' $system`"
	hwclock --set --utc --date="@$rtc"
	rtc2="`cat /sys/class/rtc/rtc0/since_epoch`"
	diff="`expr $rtc2 - $rtc`"
	echo "Setting system clock (diff $diff)"
	;;
*)
;;
esac
