From f2ed99cd297040568170fb93e7481919060f29e7 Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Thu, 24 Oct 2024 14:44:27 +0200 Subject: refactor(modules/impermanence): Move all optional dirs to their modules This increases the locality of configurations and makes it easier to see, what happens, when you enable a module. --- modules/by-name/ne/networking/module.nix | 107 +++++++++++++++++-------------- 1 file changed, 59 insertions(+), 48 deletions(-) (limited to 'modules/by-name/ne/networking/module.nix') diff --git a/modules/by-name/ne/networking/module.nix b/modules/by-name/ne/networking/module.nix index c5f0e491..8448e9b3 100644 --- a/modules/by-name/ne/networking/module.nix +++ b/modules/by-name/ne/networking/module.nix @@ -29,60 +29,71 @@ in { }; }; - config = { - networking.hostName = cfg.hostName; - - systemd.network = lib.mkIf (cfg.mode == "systemd-networkd") { - networks = { - "tap0" = { - name = "tap0"; - bridge = [ - "virbr0" - ]; - }; - "enp4s0" = { - name = "enp4s0"; - networkConfig = { - DHCP = "yes"; - DNSOverTLS = "yes"; - DNSSEC = "yes"; + config = + lib.mkIf cfg.enable + (lib.modules.mkMerge [ + { + networking.hostName = cfg.hostName; + } + (lib.mkIf (cfg.mode == "systemd-networkd") { + systemd.network = { + networks = { + "tap0" = { + name = "tap0"; + bridge = [ + "virbr0" + ]; + }; + "enp4s0" = { + name = "enp4s0"; + networkConfig = { + DHCP = "yes"; + DNSOverTLS = "yes"; + DNSSEC = "yes"; + }; + bridge = [ + "virbr0" + ]; + }; }; - bridge = [ - "virbr0" - ]; - }; - }; - netdevs = { - "tap0" = { - netdevConfig = { - Name = "tap0"; - Kind = "tap"; - }; - tapConfig = { - User = config.users.users."${cfg.userName}".uid; - Group = "libvirtd"; + netdevs = { + "tap0" = { + netdevConfig = { + Name = "tap0"; + Kind = "tap"; + }; + tapConfig = { + User = config.users.users."${cfg.userName}".uid; + Group = "libvirtd"; + }; + }; + "virbr0" = { + netdevConfig = { + Name = "br0"; + Kind = "bridge"; + }; + }; }; }; - "virbr0" = { - netdevConfig = { - Name = "br0"; - Kind = "bridge"; + }) + + (lib.mkIf (cfg.mode == "NetworkManager") { + networking.networkmanager = { + enable = true; + dns = "default"; + wifi = { + powersave = true; }; }; - }; - }; - networking.networkmanager = lib.mkIf (cfg.mode == "NetworkManager") { - enable = true; - dns = "default"; - wifi = { - powersave = true; - }; - }; + soispha.impermanence.directories = [ + "/etc/NetworkManager" + ]; - users.users."${cfg.userName}".extraGroups = lib.mkIf (cfg.mode == "NetworkManager") [ - "networkmanager" # allows to configure NetworkManager as this user - ]; - }; + users.users."${cfg.userName}".extraGroups = [ + "networkmanager" # allows to configure NetworkManager as this user + ]; + }) + ]); } -- cgit 1.4.1