clanModules: Fix iwd module

This commit is contained in:
Qubasa
2024-08-09 22:17:46 +02:00
parent ad1f3f486f
commit 51e4e42208

View File

@@ -2,18 +2,22 @@
let let
cfg = config.clan.iwd; cfg = config.clan.iwd;
secret_path = ssid: config.clan.core.facts.services."iwd.${ssid}".secret."wifi-password".path or ""; secret_path = ssid: config.clan.core.facts.services."iwd.${ssid}".secret."iwd.${ssid}".path;
secret_generator = name: value: { secret_generator = name: value: {
name = "iwd.${value.ssid}"; name = "iwd.${value.ssid}";
value = { value =
secret."iwd.${value.ssid}" = { }; let
secret_name = "iwd.${value.ssid}";
in
{
secret.${secret_name} = { };
generator.prompt = "Wifi password for '${value.ssid}'"; generator.prompt = "Wifi password for '${value.ssid}'";
generator.script = '' generator.script = ''
config=" config="
[Security] [Security]
Passphrase=$prompt_value Passphrase=$prompt_value
" "
echo "$config" > $secrets/wifi-password echo "$config" > $secrets/${secret_name}
''; '';
}; };
}; };
@@ -56,6 +60,8 @@ in
) cfg.networks; ) cfg.networks;
clan.core.facts.services = lib.mapAttrs' secret_generator cfg.networks; clan.core.facts.services = lib.mapAttrs' secret_generator cfg.networks;
# TODO: restart the iwd.service if something changes
}) })
{ {
# disable wpa supplicant # disable wpa supplicant