You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
209 lines
5.0 KiB
Bash
209 lines
5.0 KiB
Bash
4 years ago
|
#!/bin/sh
|
||
|
#
|
||
|
# Copyright (C) 2018 devolo AG
|
||
|
#
|
||
|
|
||
|
. /usr/lib/lh-migration.sh
|
||
|
|
||
|
LH_PATH="$.SystemConfig.Services"
|
||
|
|
||
|
function migrate_password() {
|
||
|
logger "Migrating password"
|
||
|
local PWD="$(lh_filter $LH_PATH.System.SystemPassword)"
|
||
|
[ -n "$PWD" ] && echo -e "${PWD}\n${PWD}" | passwd
|
||
|
}
|
||
|
|
||
|
function migrate_led() {
|
||
|
local uci_path="system"
|
||
|
local AlwaysOff="$(lh_filter $LH_PATH.LedsAndButtons.Leds.AlwaysOff)"
|
||
|
logger "Migrating leds (AlwaysOff=$AlwaysOff)"
|
||
|
if [ "$AlwaysOff" = "true" ]; then
|
||
|
local PLC_LED_SCHEME="off"
|
||
|
local DISABLE_LEDS="1"
|
||
|
elif [ "$AlwaysOff" = "false" ]; then
|
||
|
local PLC_LED_SCHEME="on"
|
||
|
local DISABLE_LEDS="0"
|
||
|
else
|
||
|
return
|
||
|
fi
|
||
|
config_load plc
|
||
|
uci set plc.plc.led_scheme=$PLC_LED_SCHEME
|
||
|
uci_commit plc
|
||
|
|
||
|
uci set $uci_path.led_wlan.disabled='0'
|
||
|
uci set $uci_path.led_wlan.disableLeds=$DISABLE_LEDS
|
||
|
uci set $uci_path.led_plcw.disabled='0'
|
||
|
uci set $uci_path.led_plcr.disabled='0'
|
||
|
}
|
||
|
|
||
|
function migrate_timezone() {
|
||
|
local uci_path="system.@system[0]"
|
||
|
local TIMEZONE ZONENAME
|
||
|
local GMTOffset=$(lh_filter $LH_PATH.NTPClient.GMTOffset)
|
||
|
logger "Migrating timezone $GMTOffset"
|
||
|
case "$GMTOffset" in
|
||
|
"-12:00")
|
||
|
TIMEZONE='UTC+12'
|
||
|
ZONENAME='UTC-12'
|
||
|
;;
|
||
|
"-11:00")
|
||
|
TIMEZONE='UTC+11'
|
||
|
ZONENAME='UTC-11'
|
||
|
;;
|
||
|
"-10:00")
|
||
|
TIMEZONE='UTC+10'
|
||
|
ZONENAME='UTC-10'
|
||
|
;;
|
||
|
"-09:00")
|
||
|
TIMEZONE='UTC+9'
|
||
|
ZONENAME='UTC-9'
|
||
|
;;
|
||
|
"-08:00")
|
||
|
TIMEZONE='UTC+8'
|
||
|
ZONENAME='UTC-8'
|
||
|
;;
|
||
|
"-07:00")
|
||
|
TIMEZONE='UTC+7'
|
||
|
ZONENAME='UTC-7'
|
||
|
;;
|
||
|
"-06:00")
|
||
|
TIMEZONE='UTC+6'
|
||
|
ZONENAME='UTC-6'
|
||
|
;;
|
||
|
"-05:00")
|
||
|
TIMEZONE='UTC+5'
|
||
|
ZONENAME='UTC-5'
|
||
|
;;
|
||
|
"-04:00")
|
||
|
TIMEZONE='UTC+4'
|
||
|
ZONENAME='UTC-4'
|
||
|
;;
|
||
|
"-03:30")
|
||
|
TIMEZONE='UTC+3:30'
|
||
|
ZONENAME='UTC-3:30'
|
||
|
;;
|
||
|
"-03:00")
|
||
|
TIMEZONE='UTC+3'
|
||
|
ZONENAME='UTC-3'
|
||
|
;;
|
||
|
"-02:00")
|
||
|
TIMEZONE='UTC+2'
|
||
|
ZONENAME='UTC-2'
|
||
|
;;
|
||
|
"-01:00")
|
||
|
TIMEZONE='UTC+1'
|
||
|
ZONENAME='UTC-1'
|
||
|
;;
|
||
|
"+00:00")
|
||
|
TIMEZONE='GMT0BST,M3.5.0/1,M10.5.0'
|
||
|
ZONENAME='Europe/London'
|
||
|
;;
|
||
|
"+01:00")
|
||
|
TIMEZONE='CET-1CEST,M3.5.0,M10.5.0/3'
|
||
|
ZONENAME='Europe/Berlin'
|
||
|
;;
|
||
|
"+02:00")
|
||
|
TIMEZONE='EET-2EEST,M3.5.0/3,M10.5.0/4'
|
||
|
ZONENAME='Europe/Sofia'
|
||
|
;;
|
||
|
"+03:00")
|
||
|
TIMEZONE='MSK-3'
|
||
|
ZONENAME='Europe/Moscow'
|
||
|
;;
|
||
|
"+03:30")
|
||
|
TIMEZONE='UTC-3:30'
|
||
|
ZONENAME='UTC+3:30'
|
||
|
;;
|
||
|
"+04:00")
|
||
|
TIMEZONE='SAMT-4'
|
||
|
ZONENAME='Europe/Samara'
|
||
|
;;
|
||
|
"+05:00")
|
||
|
TIMEZONE='UTC-5'
|
||
|
ZONENAME='UTC+5'
|
||
|
;;
|
||
|
"+05:30")
|
||
|
TIMEZONE='UTC-5:30'
|
||
|
ZONENAME='UTC+5:30'
|
||
|
;;
|
||
|
"+05:45")
|
||
|
TIMEZONE='UTC-5:45'
|
||
|
ZONENAME='UTC+5:45'
|
||
|
;;
|
||
|
"+06:00")
|
||
|
TIMEZONE='UTC-6'
|
||
|
ZONENAME='UTC+6'
|
||
|
;;
|
||
|
"+06:30")
|
||
|
TIMEZONE='UTC-6:30'
|
||
|
ZONENAME='UTC+6:30'
|
||
|
;;
|
||
|
"+07:00")
|
||
|
TIMEZONE='UTC-7'
|
||
|
ZONENAME='UTC+7'
|
||
|
;;
|
||
|
"+08:00")
|
||
|
TIMEZONE='UTC-8'
|
||
|
ZONENAME='UTC+8'
|
||
|
;;
|
||
|
"+09:00")
|
||
|
TIMEZONE='UTC-9'
|
||
|
ZONENAME='UTC+9'
|
||
|
;;
|
||
|
"+09:30")
|
||
|
TIMEZONE='UTC-9:30'
|
||
|
ZONENAME='UTC+9:30'
|
||
|
;;
|
||
|
"+10:00")
|
||
|
TIMEZONE='UTC-10'
|
||
|
ZONENAME='UTC+10'
|
||
|
;;
|
||
|
"+10:30")
|
||
|
TIMEZONE='UTC-10:30'
|
||
|
ZONENAME='UTC+10:30'
|
||
|
;;
|
||
|
"+11:00")
|
||
|
TIMEZONE='UTC-11'
|
||
|
ZONENAME='UTC+11'
|
||
|
;;
|
||
|
"+12:00")
|
||
|
TIMEZONE='UTC-12'
|
||
|
ZONENAME='UTC+12'
|
||
|
;;
|
||
|
"+13:00")
|
||
|
TIMEZONE='UTC-13'
|
||
|
ZONENAME='UTC+13'
|
||
|
;;
|
||
|
"+14:00")
|
||
|
TIMEZONE='UTC-14'
|
||
|
ZONENAME='UTC+14'
|
||
|
;;
|
||
|
esac
|
||
|
[ -n "$ZONENAME" ] && uci set $uci_path.zonename="$ZONENAME"
|
||
|
[ -n "$TIMEZONE" ] && uci set $uci_path.timezone="$TIMEZONE"
|
||
|
}
|
||
|
|
||
|
function migrate_timeserver() {
|
||
|
local uci_path="system.ntp"
|
||
|
logger "Migrating timeserver"
|
||
|
local SERVER1=$(lh_filter $LH_PATH.NTPClient.NTPServer)
|
||
|
local SERVER2=$(lh_filter $LH_PATH.NTPClient.AlternateNTPServer)
|
||
|
if [ -n "$SERVER1" ]; then
|
||
|
uci del_list $uci_path.server="europe.pool.ntp.org"
|
||
|
uci add_list $uci_path.server="$SERVER1"
|
||
|
fi
|
||
|
[ -n "$SERVER2" ] && uci add_list $uci_path.server="$SERVER2"
|
||
|
}
|
||
|
|
||
|
function migrate_system() {
|
||
|
logger "Migrating system"
|
||
|
config_load system
|
||
|
migrate_password
|
||
|
migrate_led
|
||
|
migrate_timezone
|
||
|
migrate_timeserver
|
||
|
uci_commit system
|
||
|
}
|
||
|
|
||
|
migrate_system
|