Files
WifiBP/ucidefaults.sh

105 lines
2.4 KiB
Bash

#!/bin/sh
root_password="Jednokolka"
ssh_key_rsa="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILQqqspfQuf2aNIbu6riGMTU3g5ZRcKgnRUqDSHe3/VU pixx@desktop"
. /lib/functions.sh
. /usr/share/libubox/jshn.sh
delete_wireless() {
local name="$1"
uci -q del wireless."$name"
}
delete_network() {
local name="$1"
if [[ $name != "loopback" ]]; then
uci -q del network."$name"
fi
}
# log potential errors
exec >/tmp/setup.log 2>&1
#odstraneni vychozi konfigurace
config_load wireless
config_foreach delete_wireless wifi-iface
config_load network
config_foreach delete_network interface
config_foreach delete_network device
#ziskani puvodniho wan rozhrani
json_load_file /etc/board.json
json_select "network"
if json_is_a "wan" object; then
json_select "wan"
else
json_select "lan"
fi
json_get_var wan_device "device"
#ziskani nastaveni switche
json_select ..
json_select ..
if json_is_a "switch" object; then
echo "not DSA"
json_get_keys keys switch
json_select "switch"
for key in $keys; do
json_select $key
json_select "roles"
idx=1
while json_is_a $idx object
do
json_select $idx
json_get_var device "device"
if [[ $device == $wan_device ]]; then
json_get_var ports "ports"
ports=$(echo $ports | sed -r 's/\b([0-9]+)\b/\1t/g')
switchid=$key
fi
idx=$(( idx + 1 ))
json_select ..
done
done
else
echo "is DSA"
fi
wan_device=$(echo $wan_device | sed -r 's/\..*$|$/\.99/g')
#nastavení switche
if [ ! -z ${ports+x} ]; then
config_foreach delete_network switch_vlan
uci add network switch_vlan
uci set network.@switch_vlan[-1].device="${switchid}"
uci set network.@switch_vlan[-1].vlan='99'
uci set network.@switch_vlan[-1].ports="${ports}"
uci set network.@switch_vlan[-1].vid='99'
uci set network.@switch_vlan[-1].description='mgmnt'
fi
#vytvoreni sitoveho rozhrani pro management
uci set network.mgmnt=interface
uci set network.mgmnt.proto='dhcp'
uci set network.mgmnt.device=${wan_device}
#nastaveni root hesla
if [ -n "$root_password" ]; then
(echo "$root_password"; sleep 1; echo "$root_password") | passwd > /dev/null
fi
#nastaveni ssh
uci -q set dropbear.@dropbear[0].PasswordAuth='off'
uci -q set dropbear.@dropbear[0].RootPasswordAuth='off'
if [ -n "$ssh_key_rsa" ]; then
echo $ssh_key_rsa >> /etc/dropbear/authorized_keys
fi
uci commit network
uci commit wireless
uci commit dropbear
echo "All done!"