pkgs/ap: don't use uci batch

was hiding which command produced an error
This commit is contained in:
Astro 2021-11-09 21:10:56 +01:00
parent b8b4995433
commit 311df51820
1 changed files with 49 additions and 51 deletions

View File

@ -163,22 +163,21 @@ in ''
${uciDeleteAll "network.@switch_vlan"} ${uciDeleteAll "network.@switch_vlan"}
${uciDeleteAll "wireless.@wifi"} ${uciDeleteAll "wireless.@wifi"}
uci batch <<__UCI__ uci set system.@system[0].hostname=${hostName}
set system.@system[0].hostname=${hostName} uci set dhcp.@dnsmasq[0].enabled=0
set dhcp.@dnsmasq[0].enabled=0 uci set system.@system[0].log_ip=${config.site.net.mgmt.hosts4.logging}
set system.@system[0].log_ip=${config.site.net.mgmt.hosts4.logging} uci set system.@system[0].log_proto=udp
set system.@system[0].log_proto=udp
# Switch config # Switch config
${optionalString hasSwitch '' ${optionalString hasSwitch ''
# Ports ${portsDoc} # Ports ${portsDoc}
${concatMapStrings (net: '' ${concatMapStrings (net: ''
add network switch_vlan uci add network switch_vlan
set network.@switch_vlan[-1]=switch_vlan uci set network.@switch_vlan[-1]=switch_vlan
set network.@switch_vlan[-1].device='switch0' uci set network.@switch_vlan[-1].device='switch0'
set network.@switch_vlan[-1].vlan='${toString config.site.net.${net}.vlan}' uci set network.@switch_vlan[-1].vlan='${toString config.site.net.${net}.vlan}'
set network.@switch_vlan[-1].ports='${switchPortsConfig net}' uci set network.@switch_vlan[-1].ports='${switchPortsConfig net}'
set network.@switch_vlan[-1].comment='${net}' uci set network.@switch_vlan[-1].comment='${net}'
'') ( '') (
sort (net1: net2: sort (net1: net2:
@ -193,25 +192,25 @@ in ''
''} ''}
# mgmt network # mgmt network
set network.mgmt=interface uci set network.mgmt=interface
set network.mgmt.ifname=${if builtins.length (networkInterfaces "mgmt") == 1 then builtins.head (networkInterfaces "mgmt") else throw "No interface for mgmt"} uci set network.mgmt.ifname=${if builtins.length (networkInterfaces "mgmt") == 1 then builtins.head (networkInterfaces "mgmt") else throw "No interface for mgmt"}
set network.mgmt.proto=static uci set network.mgmt.proto=static
set network.mgmt.ipaddr=${config.site.net.mgmt.hosts4.${hostName}} uci set network.mgmt.ipaddr=${config.site.net.mgmt.hosts4.${hostName}}
set network.mgmt.netmask=${self.lib.netmasks.${elemAt ( uci set network.mgmt.netmask=${self.lib.netmasks.${elemAt (
builtins.split "/" config.site.net.mgmt.subnet4 builtins.split "/" config.site.net.mgmt.subnet4
) 2}} ) 2}}
set network.mgmt.gateway=${config.site.net.mgmt.hosts4.mgmt-gw} uci set network.mgmt.gateway=${config.site.net.mgmt.hosts4.mgmt-gw}
set network.mgmt.ip6addr=${config.site.net.mgmt.hosts6.dn42.${hostName}}/64 uci set network.mgmt.ip6addr=${config.site.net.mgmt.hosts6.dn42.${hostName}}/64
set network.mgmt.ip6gw=${config.site.net.mgmt.hosts6.dn42.mgmt-gw} uci set network.mgmt.ip6gw=${config.site.net.mgmt.hosts6.dn42.mgmt-gw}
delete network.mgmt.dns uci delete network.mgmt.dns
add_list network.mgmt.dns=${config.site.net.serv.hosts4.dnscache} uci add_list network.mgmt.dns=${config.site.net.serv.hosts4.dnscache}
add_list network.mgmt.dns=${config.site.net.serv.hosts6.dn42.dnscache} uci add_list network.mgmt.dns=${config.site.net.serv.hosts6.dn42.dnscache}
delete network.globals.ula_prefix uci delete network.globals.ula_prefix
# delete unused networks # delete unused networks
${concatMapStrings (net: ${concatMapStrings (net:
lib.optionalString (! hostConfig.interfaces ? ${net}) '' lib.optionalString (! hostConfig.interfaces ? ${net}) ''
delete network.${net} uci delete network.${net}
'' ''
) ([ "lan" "wan" "wan6" ] ++ builtins.attrNames config.site.net)} ) ([ "lan" "wan" "wan6" ] ++ builtins.attrNames config.site.net)}
@ -220,16 +219,16 @@ in ''
let let
iface = hostConfig.interfaces.${net}; iface = hostConfig.interfaces.${net};
in optionalString (net != "mgmt" && iface.type == "bridge") '' in optionalString (net != "mgmt" && iface.type == "bridge") ''
set network.${net}=interface uci set network.${net}=interface
set network.${net}.type=bridge uci set network.${net}.type=bridge
set network.${net}.proto=static uci set network.${net}.proto=static
set network.${net}.ifname='${concatStringsSep " " (networkInterfaces net)}' uci set network.${net}.ifname='${concatStringsSep " " (networkInterfaces net)}'
'') (builtins.attrNames hostConfig.interfaces) '') (builtins.attrNames hostConfig.interfaces)
} }
delete wireless.default_radio0 uci delete wireless.default_radio0
delete wireless.default_radio1 uci delete wireless.default_radio1
${concatStrings (imap0 (index: path: ${concatStrings (imap0 (index: path:
let let
radioConfig = hostConfig.wifi.${path}; radioConfig = hostConfig.wifi.${path};
@ -237,42 +236,41 @@ in ''
then "wlan2" then "wlan2"
else "wlan5"; else "wlan5";
in '' in ''
set wireless.radio${toString index}=wifi-device uci set wireless.radio${toString index}=wifi-device
set wireless.radio${toString index}.type=mac80211 uci set wireless.radio${toString index}.type=mac80211
set wireless.radio${toString index}.country=DE uci set wireless.radio${toString index}.country=DE
set wireless.radio${toString index}.channel=${toString radioConfig.channel} uci set wireless.radio${toString index}.channel=${toString radioConfig.channel}
set wireless.radio${toString index}.path=${path} uci set wireless.radio${toString index}.path=${path}
set wireless.radio${toString index}.htmode=${radioConfig.htmode} uci set wireless.radio${toString index}.htmode=${radioConfig.htmode}
set wireless.radio${toString index}.noscan=1 uci set wireless.radio${toString index}.noscan=1
delete wireless.radio${toString index}.disabled uci delete wireless.radio${toString index}.disabled
${concatMapStrings (ssid: ${concatMapStrings (ssid:
let let
ssidConfig = radioConfig.ssids.${ssid}; ssidConfig = radioConfig.ssids.${ssid};
in '' in ''
add wireless wifi uci add wireless wifi
set wireless.@wifi-iface[-1].ifname=${ifPrefix}-${ssidConfig.net} uci set wireless.@wifi-iface[-1].ifname=${ifPrefix}-${ssidConfig.net}
set wireless.@wifi-iface[-1].device=radio${toString index} uci set wireless.@wifi-iface[-1].device=radio${toString index}
set wireless.@wifi-iface[-1].ssid='${ssid}' uci set wireless.@wifi-iface[-1].ssid='${ssid}'
set wireless.@wifi-iface[-1].mode=ap uci set wireless.@wifi-iface[-1].mode=ap
set wireless.@wifi-iface[-1].network=${ssidConfig.net} uci set wireless.@wifi-iface[-1].network=${ssidConfig.net}
set wireless.@wifi-iface[-1].mcast_rate=18000 uci set wireless.@wifi-iface[-1].mcast_rate=18000
${if (ssidConfig.psk != null) ${if (ssidConfig.psk != null)
then '' then ''
set wireless.@wifi-iface[-1].encryption=psk2 uci set wireless.@wifi-iface[-1].encryption=psk2
set wireless.@wifi-iface[-1].key='${ssidConfig.psk}' uci set wireless.@wifi-iface[-1].key='${ssidConfig.psk}'
'' ''
else '' else ''
set wireless.@wifi-iface[-1].encryption=none uci set wireless.@wifi-iface[-1].encryption=none
delete wireless.@wifi-iface[-1].key uci delete wireless.@wifi-iface[-1].key
''} ''}
'' ''
) (builtins.attrNames radioConfig.ssids)} ) (builtins.attrNames radioConfig.ssids)}
'') (builtins.attrNames hostConfig.wifi))} '') (builtins.attrNames hostConfig.wifi))}
commit uci commit
__UCI__
# Cronjob that makes sure WiFi is only visible when server with all # Cronjob that makes sure WiFi is only visible when server with all
# the gateways is reachable # the gateways is reachable