]> git.pld-linux.org Git - packages/tzdata.git/blobdiff - timezone.init
- detect missing zone file in status
[packages/tzdata.git] / timezone.init
index a5ad643b1f0eee9f8a411ad16d1c6433ad920c81..19c9001967aab07a54e523ec8beca5de93fb0066 100644 (file)
@@ -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 <siefca@pld-linux.org>
 #
 # $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}"
This page took 0.03495 seconds and 4 git commands to generate.