1 | #!/bin/sh |
---|
2 | # |
---|
3 | # timeconfig Slackware Linux timezone configuration utility. |
---|
4 | # |
---|
5 | # Author: Patrick Volkerding <volkerdi@slackware.com> |
---|
6 | # Modified by: David Cantrell <david@slackware.com>, 06-Oct-2000 |
---|
7 | # |
---|
8 | # ChangeLog: |
---|
9 | # 2014-10-22: Updated timezones from tzdata2014i. <pjv> |
---|
10 | # 2012-12-12: Updated timezones from tzdata2012j. <pjv> |
---|
11 | # 2008-03-10: Updated timezones from tzdata2008a. <pjv> |
---|
12 | # 2007-12-21: Updated timezones from tzdata2007j. <pjv> |
---|
13 | # 2006-12-03: Updated timezones from tzdata2006p. <pjv> |
---|
14 | # 2006-09-14: Updated timezones from tzdata2006k. <pjv> |
---|
15 | # 2006-08-22: Updated timezones from tzdata2006j. |
---|
16 | # 2006-08-13: Updated timezones from tzdata2006g. |
---|
17 | # 2006-03-13: Updated timezones from tzdata2006c. |
---|
18 | # 19-Feb-2001 Add new timezones from glibc-2.2.2. |
---|
19 | # 06-Oct-2000 Fixed a problem with selecting UTC time. It was writing |
---|
20 | # the hardwareclock file to the root disk and not your dest |
---|
21 | # partition. Changed the HWCLOCK_CONF variable to be |
---|
22 | # $T_PX/etc/hardwareclock to fix this. Thanks to David L. |
---|
23 | # Dickman <softbear@optonline.net> for finding this and |
---|
24 | # submitting a patch. |
---|
25 | # |
---|
26 | # 15-Mar-2000 Added the writeconf function to write out the |
---|
27 | # /etc/hardwareclock file which tells what the hardware clock |
---|
28 | # is set to (UTC or localtime). |
---|
29 | # |
---|
30 | # 03-Mar-2000 Reorganized script. Made one timezone set block, added |
---|
31 | # stage that asks the user if the hardware clock is set to |
---|
32 | # UTC. |
---|
33 | |
---|
34 | # setup our temp locations and variables |
---|
35 | TMP=/var/log/setup/tmp |
---|
36 | if [ -r $TMP/SeTT_PX ]; then |
---|
37 | T_PX="`cat $TMP/SeTT_PX`" |
---|
38 | elif [ ! "$!" = "" ]; then |
---|
39 | T_PX=$1 |
---|
40 | else |
---|
41 | T_PX=/ |
---|
42 | fi |
---|
43 | |
---|
44 | # the hardware clock configuration file |
---|
45 | HWCLOCK_CONF=$T_PX/etc/hardwareclock |
---|
46 | |
---|
47 | # setzone( $TIMEZONE ) |
---|
48 | # |
---|
49 | # This function accepts a time zone as the only parameter and sets it as |
---|
50 | # the default system time zone. |
---|
51 | setzone() |
---|
52 | { |
---|
53 | TZ=$1 |
---|
54 | |
---|
55 | cd $T_PX/etc |
---|
56 | if [ -r $T_PX/usr/share/zoneinfo/$TZ -o \ |
---|
57 | -r /var/log/mount/usr/share/zoneinfo/$TZ -o \ |
---|
58 | -L $T_PX/usr/share/zoneinfo/$TZ -o \ |
---|
59 | -L /var/log/mount/usr/share/zoneinfo/$TZ ]; then |
---|
60 | ln -sf /usr/share/zoneinfo/$TZ localtime-copied-from |
---|
61 | rm -f localtime |
---|
62 | cd .. |
---|
63 | chroot . cp etc/localtime-copied-from etc/localtime |
---|
64 | fi |
---|
65 | } |
---|
66 | |
---|
67 | # writeconf( $CLOCK_SET_TO ) |
---|
68 | # |
---|
69 | # Writes out $HWCLOCK_CONF that tells rc.S how the hardware clock |
---|
70 | # value is stored. |
---|
71 | writeconf() |
---|
72 | { |
---|
73 | echo "# /etc/hardwareclock" > $HWCLOCK_CONF |
---|
74 | echo "#" >> $HWCLOCK_CONF |
---|
75 | echo "# Tells how the hardware clock time is stored." >> $HWCLOCK_CONF |
---|
76 | echo "# You should run timeconfig to edit this file." >> $HWCLOCK_CONF |
---|
77 | echo >> $HWCLOCK_CONF |
---|
78 | echo $1 >> $HWCLOCK_CONF |
---|
79 | } |
---|
80 | |
---|
81 | # ask the user if the hardware clock is set for UTC/GMT |
---|
82 | if [ "$COLOR" = "on" -o -r $TMP/SeTcolor -o "$T_PX" = "/" ]; then |
---|
83 | ### |
---|
84 | ### use color menus here |
---|
85 | ### |
---|
86 | dialog --title "HARDWARE CLOCK SET TO UTC?" --menu "Is the hardware clock set \ |
---|
87 | to Coordinated Universal Time (UTC/GMT)? If it is, select YES here. If the \ |
---|
88 | hardware clock is set to the current local time (this is how most PCs are set \ |
---|
89 | up), then say NO here. If you are not sure what this is, you should answer NO \ |
---|
90 | here." 13 60 2 \ |
---|
91 | "NO" "Hardware clock is set to local time" \ |
---|
92 | "YES" "Hardware clock is set to UTC" \ |
---|
93 | 2> $TMP/utc |
---|
94 | if [ $? = 1 -o $? = 255 ]; then |
---|
95 | rm -f $TMP/utc |
---|
96 | exit |
---|
97 | fi |
---|
98 | if [ "`cat $TMP/utc`" = "YES" ]; then |
---|
99 | # yes, the hardware clock is UTC |
---|
100 | writeconf "UTC" |
---|
101 | else # must be NO |
---|
102 | writeconf "localtime" |
---|
103 | fi |
---|
104 | rm -f $TMP/utc |
---|
105 | else |
---|
106 | ### |
---|
107 | ### use text prompts |
---|
108 | ### |
---|
109 | echo "Is the hardware clock set to Coordinated Universal Time (UTC/GMT)?" |
---|
110 | echo "If it is, select 'y' here. If the hardware clock is set to the" |
---|
111 | echo "current local time (this is how most PCs are set up), then say 'n'" |
---|
112 | echo "here. If you are not sure what this is, you should answer 'n' here." |
---|
113 | echo |
---|
114 | echo -n "Is your hardware clock set to UTC ([y]es, [n]o)? " |
---|
115 | read HEJAZ |
---|
116 | |
---|
117 | if [ "$HEJAZ" = "y" -o "$HEJAZ" = "Y" -o "$HEJAZ" = "YES" -o "$HEJAZ" = "yes" ]; then |
---|
118 | # yes, the hardware clock is UTC |
---|
119 | writeconf "UTC" |
---|
120 | else |
---|
121 | # default to localtime |
---|
122 | writeconf "localtime" |
---|
123 | fi |
---|
124 | fi |
---|
125 | |
---|
126 | # Now set the correct timezone link: |
---|
127 | if [ "$COLOR" = "on" -o -r $TMP/SeTcolor -o "$T_PX" = "/" ]; then |
---|
128 | ### |
---|
129 | ### use color menus here |
---|
130 | ### |
---|
131 | dialog --title "TIMEZONE CONFIGURATION" --menu "Please select one of the following timezones for your machine:" 21 50 13 \ |
---|