#!/bin/sh
#
# timezone	Set time zone information.
# chkconfig:	2345 10 90
# description:	This script is setting time zone information for your machine.
# Author:	Pawel Wilk <siefca@pld-linux.org>
#
# $Id: timezone.init,v 1.7 2007/02/25 00:48:01 glen Exp $

[ -f /etc/sysconfig/timezone ] || exit 0

# Source function library.
. /etc/rc.d/init.d/functions

. /etc/sysconfig/timezone

ZONE_FILE="$ZONE_INFO_DIR"

if [ -n "$ZONE_INFO_SCHEME" -a "$ZONE_INFO_SCHEME" != "posix" ]; then
	ZONE_FILE="$ZONE_FILE/$ZONE_INFO_SCHEME"
fi

if [ -n "$ZONE_INFO_AREA" ]; then
	ZONE_FILE="$ZONE_FILE/$ZONE_INFO_AREA"
fi

ZONE_FILE="$ZONE_FILE/$TIME_ZONE"

[ -L /etc/localtime ] && [ "$(resolvesymlink /etc/localtime)" = "$ZONE_FILE" ] && exit 0

start() {
	if [ ! -f /var/lock/subsys/timezone ]; then
		if [ -f "$ZONE_FILE" ]; then
			rm -f /etc/localtime

			if [ -n "$ZONE_INFO_AREA" ]; then
				MESSAGE="`nls 'Setting time zone information (%s, %s)' "$ZONE_INFO_AREA" "$TIME_ZONE"`"
			else
				MESSAGE="`nls 'Setting time zone information (%s)' "$TIME_ZONE"`"
			fi
			run_cmd "$MESSAGE" cp -af $ZONE_FILE /etc/localtime
			RETVAL=$?
		fi

		[ $RETVAL -eq 0 ] && touch /var/lock/subsys/timezone
	fi
}

stop() {
	if [ -f /var/lock/subsys/timezone ]; then
		rm -f /var/lock/subsys/timezone
	fi
}

disable() {
	run_cmd "Unsetting time zone information" rm -f /etc/localtime
}

RETVAL=0
# See how we were called.
case "$1" in
  start)
	start
	;;
  stop)
  	stop
	;;
  restart|reload)
	stop
	start
	;;
  disable)
	disable
	;;
  *)
	msg_usage "$0 {start|stop|restart|reload|disable}"
	exit 3
esac

exit $RETVAL
