summaryrefslogtreecommitdiff
path: root/ext/openwrt.nix
blob: 8b393583b6427ba6c57834d69679b93e61aef992 (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
55
56
57
{
  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
        '';
      };
    };
  };
}