clanModules: Fix iwd module

This commit is contained in:
Qubasa
2024-08-09 22:17:46 +02:00
parent 74a6640b3d
commit fb0ae0c22d

View File

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