#!/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.15 2009/08/24 21:27:49 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

ZONE_FILE="$ZONE_FILE/$TIMEZONE"

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

start() {
	if [ -f /var/lock/subsys/timezone ]; then
		return
	fi

	if [ -f "$ZONE_FILE" ]; then
		rm -f /etc/localtime

		MESSAGE=$(nls 'Setting time zone information (%s)' "$TIMEZONE")

		run_cmd "$MESSAGE" cp -af $ZONE_FILE /etc/localtime
		RETVAL=$?
		restorecon /etc/localtime >/dev/null 2>&1
	fi

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

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|try-restart|reload|force-reload)
	stop
	start
	;;
  disable)
	disable
	;;
  status)
	nls 'Time zone configured to (%s)' "$TIMEZONE"
	;;
  *)
	msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|disable|status}"
	exit 3
esac

exit $RETVAL
