configure-stormux/.includes/timezone.sh

36 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
export DIALOGOPTS='--insecure --no-lines --visit-items'
# Get the list of timezones
mapfile -t regions < <(timedatectl --no-pager list-timezones | cut -d '/' -f1 | sort -u)
# Use the same text twice here and just hide the tag field.
region=$(dialog --backtitle "Please select your Region" \
--no-tags \
--menu "Use up and down arrows or page-up and page-down to navigate the list, and press 'Enter' to make your selection." 0 0 0 \
$(for i in ${regions[@]} ; do echo "$i";echo "$i";done) --stdout)
mapfile -t cities < <(timedatectl --no-pager list-timezones | grep "$region" | cut -d '/' -f2 | sort -u)
# Use the same text twice here and just hide the tag field.
city=$(dialog --backtitle "Please select a city near you" \
--no-tags \
--menu "Use up and down arrow or page-up and page-down to navigate the list." 0 0 10 \
$(for i in ${cities[@]} ; do echo "$i";echo "$i";done) --stdout)
# Set the timezone
sudo "${sudoFlags[@]}" timedatectl set-timezone ${region}/${city}
if [[ -f /etc/localtime ]]; then
sudo "${sudoFlags[@]}" rm /etc/localtime
fi
sudo "${sudoFlags[@]}" ln -s /usr/share/zoneinfo/${region}/${city} /etc/localtime
# Make sure we are syncing with the internet
echo "Setting up ntpd"
sudo "${sudoFlags[@]}" timedatectl set-ntp false
sudo "${sudoFlags[@]}" systemctl stop ntpd
sudo "${sudoFlags[@]}" ntpd -Ggq &> /dev/null
sudo "${sudoFlags[@]}" systemctl enable ntpd --now