feat: moved first module into shared config

This commit is contained in:
Patrick Großmann 2023-12-22 01:49:38 +01:00
parent 5ffcba1e46
commit 920779ee35
Signed by: patrick
GPG key ID: 451F95EFB8BECD0F
3 changed files with 3 additions and 53 deletions

View file

@ -974,11 +974,11 @@
"pre-commit-hooks": "pre-commit-hooks_2" "pre-commit-hooks": "pre-commit-hooks_2"
}, },
"locked": { "locked": {
"lastModified": 1703205251, "lastModified": 1703206032,
"narHash": "sha256-V8Uxy/g6WRn+ISgBHjs0IY9ZGqjovguNp2FZ2aL+Oqg=", "narHash": "sha256-hCuX9y1lUwa8Ck0jruebL2YLhwnDunav/uiIp9EvmNc=",
"owner": "oddlama", "owner": "oddlama",
"repo": "nixos-extra-modules", "repo": "nixos-extra-modules",
"rev": "42374eff1f3ca895d631789e38c04f3f10318abb", "rev": "073a8ae3b34ed85619dd22bba0d4fb6b6e8e14d1",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -19,7 +19,6 @@
../meta.nix ../meta.nix
../smb-mounts.nix ../smb-mounts.nix
../deterministic-ids.nix ../deterministic-ids.nix
../interface-naming.nix
./impermanence ./impermanence
inputs.home-manager.nixosModules.default inputs.home-manager.nixosModules.default

View file

@ -1,49 +0,0 @@
# Provides an option to easily rename interfaces by their mac addresses.
{
config,
lib,
pkgs,
...
}: let
inherit
(lib)
attrValues
concatStringsSep
duplicates
mapAttrsToList
mkIf
mkOption
types
;
cfg = config.networking.renameInterfacesByMac;
interfaceNamesUdevRules = pkgs.writeTextFile {
name = "interface-names-udev-rules";
text = concatStringsSep "\n" (mapAttrsToList
(name: mac: ''SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="${mac}", NAME:="${name}"'')
cfg);
destination = "/etc/udev/rules.d/01-interface-names.rules";
};
in {
options.networking.renameInterfacesByMac = mkOption {
default = {};
example = {lan = "11:22:33:44:55:66";};
description = "Allows naming of network interfaces based on their physical address";
type = types.attrsOf types.str;
};
config = mkIf (cfg != {}) {
assertions = let
duplicateMacs = duplicates (attrValues cfg);
in [
{
assertion = duplicateMacs == [];
message = "Duplicate mac addresses found in network interface name assignment: ${concatStringsSep ", " duplicateMacs}";
}
];
services.udev.packages = [interfaceNamesUdevRules];
boot.initrd.services.udev.packages = [interfaceNamesUdevRules];
};
}