36 lines
1.5 KiB
Bash
Executable File
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
|