diff options
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/openwrt.nix | 82 | ||||
| -rw-r--r-- | ext/terranix/default.nix | 29 |
2 files changed, 65 insertions, 46 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 + ''; + }; }; }; } diff --git a/ext/terranix/default.nix b/ext/terranix/default.nix index 93e73a6..c70d4d8 100644 --- a/ext/terranix/default.nix +++ b/ext/terranix/default.nix @@ -1,18 +1,25 @@ -{ - perSystem = {pkgs, ...}: { - terranix = { - package = pkgs.opentofu.withPlugins (plugins: [ +{inputs, ...}: { + perSystem = { + pkgs, + system, + ... + }: { + packages = { + opentofu = pkgs.opentofu.withPlugins (plugins: [ plugins.cloudflare plugins.tailscale ]); - modules = [ - ./cloudflare - ./tailscale - ./cloud.nix - ./vars.nix - ./versions.nix - ]; + terranix = inputs.terranix.lib.terranixConfiguration { + inherit system; + modules = [ + ./cloudflare + ./tailscale + ./cloud.nix + ./vars.nix + ./versions.nix + ]; + }; }; }; } |
