mirror of
https://github.com/alexbelgium/hassio-addons.git
synced 2026-01-10 18:01:03 +01:00
Improve timezone handling
https://github.com/alexbelgium/hassio-addons/issues/1595#issuecomment-2393969024
This commit is contained in:
@@ -6,67 +6,58 @@ set -e
|
||||
# SET SYSTEM #
|
||||
##############
|
||||
|
||||
echo " "
|
||||
bashio::log.info "Setting password for the user pi"
|
||||
echo "pi:$(bashio::config "pi_password")" | sudo chpasswd
|
||||
echo "... done"
|
||||
echo "pi:$(bashio::config "pi_password")" | chpasswd
|
||||
bashio::log.info "Password set successfully for user pi."
|
||||
|
||||
echo " "
|
||||
bashio::log.info "Starting system services"
|
||||
bashio::log.info "Setting timezone :"
|
||||
|
||||
# Set TZ
|
||||
# Use timezone defined in add-on options if available
|
||||
if bashio::config.has_value 'TZ'; then
|
||||
TIMEZONE=$(bashio::config 'TZ')
|
||||
echo "... setting timezone to $TIMEZONE"
|
||||
ln -snf /usr/share/zoneinfo/"$TIMEZONE" /etc/localtime
|
||||
echo "$TIMEZONE" >/etc/timezone
|
||||
fi || (bashio::log.fatal "Error : $TIMEZONE not found. Here is a list of valid timezones : https://manpages.ubuntu.com/manpages/focal/man3/DateTime::TimeZone::Catalog.3pm.html")
|
||||
|
||||
# Correcting systemctl
|
||||
echo "... correcting systemctl"
|
||||
mv /helpers/systemctl3.py /bin/systemctl
|
||||
chmod a+x /bin/systemctl
|
||||
|
||||
# Correcting systemctl
|
||||
echo "... correcting datetimectl"
|
||||
mv /helpers/timedatectl /usr/bin/timedatectl
|
||||
chmod a+x /usr/bin/timedatectl
|
||||
|
||||
# Correct language labels
|
||||
export "$(grep "^DATABASE_LANG" /config/birdnet.conf)"
|
||||
# Saving default of en
|
||||
cp "$HOME"/BirdNET-Pi/model/labels.txt "$HOME"/BirdNET-Pi/model/labels.bak
|
||||
# Adapt to new language
|
||||
echo "... adapting labels according to birdnet.conf file to $DATABASE_LANG"
|
||||
/."$HOME"/BirdNET-Pi/scripts/install_language_label_nm.sh -l "$DATABASE_LANG"
|
||||
|
||||
echo "... starting cron"
|
||||
systemctl start cron
|
||||
|
||||
# Starting dbus
|
||||
echo "... starting dbus"
|
||||
service dbus start
|
||||
|
||||
# Starting journald
|
||||
# echo "... starting journald"
|
||||
# systemctl start systemd-journald
|
||||
|
||||
# Starting services
|
||||
echo ""
|
||||
bashio::log.info "Starting BirdNET-Pi services"
|
||||
chmod +x "$HOME"/BirdNET-Pi/scripts/restart_services.sh
|
||||
"$HOME"/BirdNET-Pi/scripts/restart_services.sh
|
||||
|
||||
if bashio::config.true LIVESTREAM_BOOT_ENABLED; then
|
||||
echo "... starting livestream"
|
||||
sudo systemctl enable icecast2
|
||||
sudo systemctl start icecast2.service
|
||||
sudo systemctl enable --now livestream.service
|
||||
TZ_VALUE="$(bashio::config 'TZ')"
|
||||
if timedatectl set-timezone "$TZ_VALUE"; then
|
||||
echo "... timezone set to $TZ_VALUE as defined in add-on options (BirdNET config ignored)."
|
||||
else
|
||||
bashio::log.warning "Couldn't set timezone to $TZ_VALUE. Refer to the list of valid timezones: https://manpages.ubuntu.com/manpages/focal/man3/DateTime::TimeZone::Catalog.3pm.html"
|
||||
timedatectl set-ntp true &>/dev/null
|
||||
fi
|
||||
# Use BirdNET-defined timezone if no add-on option is provided
|
||||
elif [ -f /data/timezone ]; then
|
||||
BIRDN_CONFIG_TZ="$(cat /data/timezone)"
|
||||
timedatectl set-ntp false &>/dev/null
|
||||
if timedatectl set-timezone "$BIRDN_CONFIG_TZ"; then
|
||||
echo "... set to $BIRDN_CONFIG_TZ as defined in BirdNET config."
|
||||
else
|
||||
bashio::log.warning "Couldn't set timezone to $BIRDN_CONFIG_TZ. Reverting to automatic timezone."
|
||||
timedatectl set-ntp true &>/dev/null
|
||||
fi
|
||||
# Fallback to automatic timezone if no manual settings are found
|
||||
else
|
||||
if timedatectl set-ntp true &>/dev/null; then
|
||||
bashio::log.info "... automatic timezone enabled."
|
||||
else
|
||||
bashio::log.fatal "Couldn't set automatic timezone! Please set a manual one from the options."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Correct the phpsysinfo for the correct gotty service
|
||||
gottyservice="$(pgrep -l "gotty" | awk '{print $NF}' | head -n 1)"
|
||||
echo "... using $gottyservice in phpsysinfo"
|
||||
sed -i "s/,gotty,/,${gottyservice:-gotty},/g" "$HOME"/BirdNET-Pi/templates/phpsysinfo.ini
|
||||
bashio::log.info "Starting system services"
|
||||
|
||||
echo " "
|
||||
bashio::log.info "Starting cron service"
|
||||
systemctl start cron >/dev/null
|
||||
|
||||
bashio::log.info "Starting dbus service"
|
||||
service dbus start >/dev/null
|
||||
|
||||
bashio::log.info "Starting BirdNET-Pi services"
|
||||
chmod +x "$HOME/BirdNET-Pi/scripts/restart_services.sh" >/dev/null
|
||||
"$HOME/BirdNET-Pi/scripts/restart_services.sh" >/dev/null
|
||||
|
||||
# Start livestream services if enabled in configuration
|
||||
if bashio::config.true LIVESTREAM_BOOT_ENABLED; then
|
||||
echo "... starting livestream services"
|
||||
systemctl enable icecast2 >/dev/null
|
||||
systemctl start icecast2.service >/dev/null
|
||||
systemctl enable --now livestream.service >/dev/null
|
||||
fi
|
||||
|
||||
bashio::log.info "Setup complete."
|
||||
|
||||
Reference in New Issue
Block a user