]> git.pld-linux.org Git - packages/tzdata.git/blame - timezone.init
- missing file should result error code
[packages/tzdata.git] / timezone.init
CommitLineData
462b45ea
ER
1#!/bin/sh
2#
3# timezone Set time zone information.
315b0b3a 4# chkconfig: 2345 10 90
462b45ea 5# description: This script is setting time zone information for your machine.
462b45ea
ER
6#
7# $Id$
8
b1e44da8
ER
9[ -f /etc/sysconfig/timezone ] || exit 0
10
462b45ea
ER
11# Source function library.
12. /etc/rc.d/init.d/functions
13
462b45ea
ER
14. /etc/sysconfig/timezone
15
16ZONE_FILE="$ZONE_INFO_DIR"
17
18if [ -n "$ZONE_INFO_SCHEME" -a "$ZONE_INFO_SCHEME" != "posix" ]; then
19 ZONE_FILE="$ZONE_FILE/$ZONE_INFO_SCHEME"
20fi
21
9074097d 22ZONE_FILE="$ZONE_FILE/$TIMEZONE"
462b45ea 23
b1e44da8 24[ -L /etc/localtime ] && [ "$(resolvesymlink /etc/localtime)" = "$ZONE_FILE" ] && exit 0
462b45ea
ER
25
26start() {
96bffd52 27 if [ -f /var/lock/subsys/timezone ]; then
8c564fe6 28 msg_already_running timezone
96bffd52
ER
29 return
30 fi
fe8f4f97 31
96bffd52
ER
32 if [ -f "$ZONE_FILE" ]; then
33 rm -f /etc/localtime
9074097d 34
96bffd52 35 MESSAGE=$(nls 'Setting time zone information (%s)' "$TIMEZONE")
462b45ea 36
8c564fe6 37 run_cmd "$MESSAGE" cp -af "$ZONE_FILE" /etc/localtime
96bffd52
ER
38 RETVAL=$?
39 restorecon /etc/localtime >/dev/null 2>&1
8c564fe6
TP
40 else
41 show "Missing %s file" "$ZONE_FILE"
42 fail
27ab39d6 43 RETVAL=2
462b45ea 44 fi
96bffd52
ER
45
46 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/timezone
462b45ea
ER
47}
48
49stop() {
038f1b94 50 rm -f /var/lock/subsys/timezone >/dev/null 2>&1
462b45ea
ER
51}
52
a9d82c32
ER
53disable() {
54 run_cmd "Unsetting time zone information" rm -f /etc/localtime
55}
56
9b59d724
ER
57# return true if FILE1 and FILE2 are identical
58identical() {
59 local crc1 crc2
60 crc1=$(cksum "$1" | awk '{print $1}')
61 crc2=$(cksum "$2" | awk '{print $1}')
62 [ "$crc1" = "$crc2" ]
63}
64
462b45ea
ER
65RETVAL=0
66# See how we were called.
67case "$1" in
68 start)
69 start
70 ;;
71 stop)
8c564fe6 72 stop
462b45ea 73 ;;
c5e2e190 74 restart|try-restart|reload|force-reload)
462b45ea
ER
75 stop
76 start
77 ;;
a9d82c32
ER
78 disable)
79 disable
80 ;;
64534ab1 81 status)
9b59d724 82 nls 'Time zone is configured to %s' "$TIMEZONE"
7e337acd
ER
83 if [ ! -f "$ZONE_FILE" ]; then
84 nls "Missing %s file" "$ZONE_FILE"
85 elif ! identical "$ZONE_FILE" /etc/localtime; then
8c564fe6 86 nls 'Current time zone differs from %s!' "$TIMEZONE"
8c564fe6 87 fi
64534ab1 88 ;;
462b45ea 89 *)
c5e2e190 90 msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|disable|status}"
462b45ea
ER
91 exit 3
92esac
93
462b45ea 94exit $RETVAL
This page took 0.107907 seconds and 4 git commands to generate.