diff options
-rw-r--r-- | functions | 17 | ||||
-rwxr-xr-x | rc.sysinit | 4 |
2 files changed, 18 insertions, 3 deletions
@@ -369,6 +369,23 @@ read_crypttab() { return $failed } +set_timezone() { + local tz=$1 zonefile=/usr/share/zoneinfo/$tz + + [[ $tz ]] || return 1 + + if [[ ! -e $zonefile ]]; then + printf "error: \`%s' is not a valid timezone\n" "$tz" + return 1 + fi + + if [[ -L /etc/localtime && /etc/localtime -ef $zonefile ]]; then + return 0 + fi + + ln -sf "/usr/share/zoneinfo/$tz" /etc/localtime +} + # Filesystem functions # These can be overridden/reused for customizations like shutdown/loop-fsck. NETFS="nfs,nfs4,smbfs,cifs,codafs,ncpfs,shfs,fuse,fuseblk,glusterfs,davfs,fuse.glusterfs" @@ -221,9 +221,7 @@ run_hook sysinit_postmount status "Activating Swap" swapon -a -[[ $TIMEZONE ]] && - status "Configuring Time Zone" \ - cp --remove-destination "/usr/share/zoneinfo/$TIMEZONE" /etc/localtime +[[ $TIMEZONE ]] && status "Configuring Time Zone" set_timezone "$TIMEZONE" RANDOM_SEED=/var/lib/misc/random-seed [[ -f $RANDOM_SEED ]] && |