#!/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!"