X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=timezone.init;h=19c9001967aab07a54e523ec8beca5de93fb0066;hb=7e337acdfe8c8749517ee564ea48a6434dedafaf;hp=a5ad643b1f0eee9f8a411ad16d1c6433ad920c81;hpb=038f1b943e7fe63bebd0e10ea0f7eabbd29b3e57;p=packages%2Ftzdata.git diff --git a/timezone.init b/timezone.init index a5ad643..19c9001 100644 --- a/timezone.init +++ b/timezone.init @@ -3,7 +3,6 @@ # timezone Set time zone information. # chkconfig: 2345 10 90 # description: This script is setting time zone information for your machine. -# Author: Pawel Wilk # # $Id$ @@ -26,6 +25,7 @@ ZONE_FILE="$ZONE_FILE/$TIMEZONE" start() { if [ -f /var/lock/subsys/timezone ]; then + msg_already_running timezone return fi @@ -34,9 +34,12 @@ start() { MESSAGE=$(nls 'Setting time zone information (%s)' "$TIMEZONE") - run_cmd "$MESSAGE" cp -af $ZONE_FILE /etc/localtime + run_cmd "$MESSAGE" cp -af "$ZONE_FILE" /etc/localtime RETVAL=$? restorecon /etc/localtime >/dev/null 2>&1 + else + show "Missing %s file" "$ZONE_FILE" + fail fi [ $RETVAL -eq 0 ] && touch /var/lock/subsys/timezone @@ -50,6 +53,14 @@ disable() { run_cmd "Unsetting time zone information" rm -f /etc/localtime } +# return true if FILE1 and FILE2 are identical +identical() { + local crc1 crc2 + crc1=$(cksum "$1" | awk '{print $1}') + crc2=$(cksum "$2" | awk '{print $1}') + [ "$crc1" = "$crc2" ] +} + RETVAL=0 # See how we were called. case "$1" in @@ -57,7 +68,7 @@ case "$1" in start ;; stop) - stop + stop ;; restart|try-restart|reload|force-reload) stop @@ -67,7 +78,12 @@ case "$1" in disable ;; status) - nls 'Time zone configured to (%s)' "$TIMEZONE" + nls 'Time zone is configured to %s' "$TIMEZONE" + if [ ! -f "$ZONE_FILE" ]; then + nls "Missing %s file" "$ZONE_FILE" + elif ! identical "$ZONE_FILE" /etc/localtime; then + nls 'Current time zone differs from %s!' "$TIMEZONE" + fi ;; *) msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|disable|status}"