ubuntu-22.04.3-desktop-amd64/casper/filesystem/usr/share/ubiquity/clock-setup-apply

71 lines
1.4 KiB
Bash
Executable File

#! /bin/sh
set -e
# Much of this is cloned-and-hacked from
# clock-setup/finish-install.d/10clock-setup.
. /usr/share/debconf/confmodule
if [ "$UBIQUITY_OEM_USER_CONFIG" ]; then
roots=/
else
roots='/ /target'
fi
if [ -f /etc/default/hwclock ]; then
utcfile=/etc/default/hwclock
else
utcfile=/etc/default/rcS
fi
adjtimefile=/etc/adjtime
db_get clock-setup/utc
for root in $roots; do
if [ "$RET" = true ]; then
if [ -e "$root$utcfile" ]; then
sed -i -e 's:^UTC="no":UTC="yes":' -e 's:^UTC=no:UTC=yes:' $root$utcfile
fi
if [ -e "$root$adjtimefile" ]; then
sed -i -e 's:^LOCAL:UTC:' $root$adjtimefile
fi
UTC='--utc'
else
if [ -e "$root$utcfile" ]; then
sed -i -e 's:^UTC="yes":UTC="no":' -e 's:^UTC=yes:UTC=no:' $root$utcfile
fi
if [ -e "$root$adjtimefile" ]; then
sed -i -e 's:^UTC:LOCAL:' $root$adjtimefile
fi
UTC='--localtime'
fi
done
# It isn't strictly necessary to set the hardware clock here, but we do it
# anyway in case the system crashes before being shut down.
# TODO: progress information?
log-output -t clock-setup hwclock --systohc --debug --noadjfile $UTC &
pid="$!"
count=0
stop_hwclock () {
kill $pid || return
sleep 1
if [ -e /proc/$pid ]; then
kill -9 $pid || return
fi
}
while sleep 1; do
if [ ! -e /proc/$pid ]; then
break
fi
count=$(expr $count + 1)
if [ "$count" = 30 ]; then
stop_hwclock
break
fi
done
exit 0