summaryrefslogtreecommitdiff
path: root/ext/openwrt.nix
blob: f02f8ef80a12babedcd49d7260dd87c5ca03414c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
{
  lib,
  inputs,
  withSystem,
  ...
}: let
  pkgs = withSystem "x86_64-linux" ({pkgs, ...}: pkgs);

  profileFromRelease = release:
    (inputs.openwrt-imagebuilder.lib.profiles {
      inherit pkgs release;
    })
    .identifyProfile;

  mkImage = {profile, ...} @ args:
    inputs.openwrt-imagebuilder.lib.build (
      profileFromRelease args.release profile
      // builtins.removeAttrs args ["profile" "release"]
    );

  mapImages = lib.mapAttrs (lib.const mkImage);
in {
  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

          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
        '';
      };
    };
  };
}