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.
63 lines
1.4 KiB
Bash
63 lines
1.4 KiB
Bash
#!/bin/sh
|
|
#
|
|
# Copyright (C) 2018 devolo AG
|
|
#
|
|
|
|
. /usr/lib/lh-migration.sh
|
|
. /usr/share/libubox/jshn.sh
|
|
|
|
LH_PATH="$.SystemConfig.Services.Wireless.Schedule"
|
|
UCI_PATH="wifi_schedule"
|
|
|
|
function add_entry() {
|
|
local entry=$(uci add $UCI_PATH entry)
|
|
if [ -n "$entry" ]; then
|
|
uci_set $UCI_PATH "$entry" daysofweek "$1"
|
|
uci_set $UCI_PATH "$entry" starttime "$2"
|
|
uci_set $UCI_PATH "$entry" stoptime "$3"
|
|
uci_set $UCI_PATH "$entry" enabled '1'
|
|
fi
|
|
}
|
|
|
|
function entry_cb() {
|
|
local Idx="$1"
|
|
local Context="$2"
|
|
|
|
local On Off
|
|
json_get_var On On
|
|
json_get_var Off Off
|
|
|
|
add_entry "$Context" "$On" "$Off"
|
|
}
|
|
|
|
function day_cb() {
|
|
local Idx="$1"
|
|
local Context="$2"
|
|
|
|
local Day
|
|
json_get_var Day Day
|
|
|
|
lh_iterate_array Entry Entries entry_cb "$Day"
|
|
}
|
|
|
|
function migrate_wifi_schedule() {
|
|
logger "Migrating wifi schedule"
|
|
|
|
config_load $UCI_PATH
|
|
json_init
|
|
json_load "$(lh_filter $LH_PATH)"
|
|
|
|
local Active WaitForLastStation ForceWifiDown=0
|
|
json_get_var Active Active
|
|
json_get_var WaitForLastStation WaitForLastStation
|
|
uci set $UCI_PATH.@global[0].enabled="$Active"
|
|
[ "$WaitForLastStation" = "0" ] && ForceWifiDown=1
|
|
uci set $UCI_PATH.@global[0].forcewifidown="$ForceWifiDown"
|
|
|
|
lh_iterate_array Day Days day_cb
|
|
|
|
uci_commit $UCI_PATH
|
|
}
|
|
|
|
migrate_wifi_schedule
|