configure-stormux/.includes/timezone.sh

32 lines
1.3 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 -sf /usr/share/zoneinfo/${region}/${city} /etc/localtime
# Make sure we are syncing with the internet
sudo "${sudoFlags[@]}" timedatectl set-ntp true