Simplify wlan module

This commit is contained in:
SebastianStork 2024-08-24 19:15:17 +02:00
parent 4adbb026e1
commit d97a299ea3

View file

@ -4,46 +4,47 @@
lib, lib,
... ...
}: }:
let
pskSsids = [
"WLAN-233151"
"Fairphone4"
"DSL_EXT"
];
in
{ {
options.myConfig.wlan.enable = lib.mkEnableOption ""; options.myConfig.wlan.enable = lib.mkEnableOption "";
config = lib.mkIf config.myConfig.wlan.enable { config = lib.mkIf config.myConfig.wlan.enable (
sops = { lib.mkMerge [
secrets = { {
"wlan/WLAN-233151/key" = { }; networking.wireless.iwd = {
"wlan/Fairphone4/key" = { }; enable = true;
"wlan/DSL_EXT/key" = { }; settings = {
}; General.EnableNetworkConfiguration = true;
Settings.AutoConnect = true;
templates = Network.NameResolvingService = "resolvconf";
let };
makePskFile = name: ''
[Security]
Passphrase=${config.sops.placeholder."wlan/${name}/key"}
'';
in
{
"iwd/WLAN-233151.psk".content = makePskFile "WLAN-233151";
"iwd/Fairphone4.psk".content = makePskFile "Fairphone4";
"iwd/DSL_EXT.psk".content = makePskFile "DSL_EXT";
}; };
};
networking.wireless.iwd = { environment.systemPackages = [ pkgs.iwgtk ];
enable = true; }
settings = {
General.EnableNetworkConfiguration = true;
Settings.AutoConnect = true;
Network.NameResolvingService = "resolvconf";
};
};
systemd.tmpfiles.rules = [ (lib.mkMerge (
"C /var/lib/iwd/WLAN-233151.psk - - - - ${config.sops.templates."iwd/WLAN-233151.psk".path}" lib.forEach pskSsids (ssid: {
"C /var/lib/iwd/Fairphone4.psk - - - - ${config.sops.templates."iwd/Fairphone4.psk".path}" sops = {
"C /var/lib/iwd/DSL_EXT.psk - - - - ${config.sops.templates."iwd/DSL_EXT.psk".path}" secrets."wlan/${ssid}/key" = { };
];
environment.systemPackages = [ pkgs.iwgtk ]; templates."iwd/${ssid}.psk".content = ''
}; [Security]
Passphrase=${config.sops.placeholder."wlan/${ssid}/key"}
'';
};
systemd.tmpfiles.rules = [
"C /var/lib/iwd/${ssid}.psk - - - - ${config.sops.templates."iwd/${ssid}.psk".path}"
];
})
))
]
);
} }