diff options
Diffstat (limited to 'ext/openwrt.nix')
| -rw-r--r-- | ext/openwrt.nix | 82 |
1 files changed, 47 insertions, 35 deletions
diff --git a/ext/openwrt.nix b/ext/openwrt.nix index d0e8d08..f02f8ef 100644 --- a/ext/openwrt.nix +++ b/ext/openwrt.nix @@ -1,42 +1,54 @@ -{withSystem, ...}: let - mkScript = script: - withSystem "x86_64-linux" ( - {pkgs, ...}: - pkgs.runCommand "image-files" {} script - ); +{ + lib, + inputs, + withSystem, + ... +}: let + pkgs = withSystem "x86_64-linux" ({pkgs, ...}: pkgs); + + profileFromRelease = release: + (inputs.openwrt-imagebuilder.lib.profiles { + inherit pkgs release; + }) + .identifyProfile; - setDefaults = opts: - mkScript '' - mkdir -p $out/etc/uci-defaults + mkImage = {profile, ...} @ args: + inputs.openwrt-imagebuilder.lib.build ( + profileFromRelease args.release profile + // builtins.removeAttrs args ["profile" "release"] + ); - cat > $out/etc/uci-defaults/99-custom << EOF - uci -q batch << EOI - ${opts} - commit - EOI - EOF - ''; + mapImages = lib.mapAttrs (lib.const mkImage); in { - openWrtImages = { - turret = { - release = "23.05.0"; - profile = "netgear_wac104"; + flake.legacyPackages.x86_64-linux = { + openWrtImages = mapImages { + turret = { + release = "23.05.0"; + profile = "netgear_wac104"; + + files = pkgs.runCommand "image-files" {} '' + mkdir -p $out/etc/uci-defaults - files = setDefaults '' - set system.@system[0].hostname="turret" - del_list network.@device[0].ports="lan4" - set network.wan="interface" - set network.wan.device="lan4" - set network.wan.proto="dhcp" - set wireless.default_radio0.ssid="Box-2.4G" - set wireless.default_radio0.encryption="psk2" - set wireless.default_radio0.key="CorrectHorseBatteryStaple" - set wireless.default_radio1.ssid="Box-5G" - set wireless.default_radio1.encryption="psk2" - set wireless.default_radio1.key="CorrectHorseBatteryStaple" - add_list dhcp.@dnsmasq[0].server="1.1.1.1" - add_list dhcp.@dnsmasq[0].server="1.0.0.1" - ''; + cat > $out/etc/uci-defaults/99-custom << EOF + uci -q batch << EOI + set system.@system[0].hostname="turret" + del_list network.@device[0].ports="lan4" + set network.wan="interface" + set network.wan.device="lan4" + set network.wan.proto="dhcp" + set wireless.default_radio0.ssid="Box-2.4G" + set wireless.default_radio0.encryption="psk2" + set wireless.default_radio0.key="CorrectHorseBatteryStaple" + set wireless.default_radio1.ssid="Box-5G" + set wireless.default_radio1.encryption="psk2" + set wireless.default_radio1.key="CorrectHorseBatteryStaple" + add_list dhcp.@dnsmasq[0].server="1.1.1.1" + add_list dhcp.@dnsmasq[0].server="1.0.0.1" + commit + EOI + EOF + ''; + }; }; }; } |
