diff --git a/src/dotfiles/guests.nix b/src/dotfiles/guests.nix index 896ff97..e0e5deb 100644 --- a/src/dotfiles/guests.nix +++ b/src/dotfiles/guests.nix @@ -1,6 +1,5 @@ { inputs, - lib, root, specialArgs, repositoryModules, @@ -276,7 +275,7 @@ let }; }; - names = map (path: lib.removeSuffix ".nix" (builtins.baseNameOf path)) files; + names = map util.removeNixSuffix files; in { imports = files ++ map mkGuest names; diff --git a/src/dotfiles/registry.nix b/src/dotfiles/registry.nix index 6950765..c8ce56e 100644 --- a/src/dotfiles/registry.nix +++ b/src/dotfiles/registry.nix @@ -6,13 +6,11 @@ }: let definitions = lib.listToAttrs ( - map (path: lib.nameValuePair (registryName (builtins.baseNameOf path)) (mkRegistry path)) ( + map (path: lib.nameValuePair (util.removeNixSuffix path) (mkRegistry path)) ( util.collectNixFiles root ) ); - registryName = fileName: lib.removeSuffix ".nix" fileName; - mkRegistry = path: let diff --git a/src/dotfiles/util.nix b/src/dotfiles/util.nix index df0b3a5..56c5e99 100644 --- a/src/dotfiles/util.nix +++ b/src/dotfiles/util.nix @@ -20,6 +20,8 @@ in { inherit collectNixFiles; + removeNixSuffix = path: lib.removeSuffix ".nix" (builtins.baseNameOf path); + bridgeName = id: "br-vlan${toString id}"; deriveMac = diff --git a/src/skills/style/nix/rules/general.md b/src/skills/style/nix/rules/general.md index 3b51109..98d33a6 100644 --- a/src/skills/style/nix/rules/general.md +++ b/src/skills/style/nix/rules/general.md @@ -10,3 +10,14 @@ Pass `util` to Nix functions that need the helper. `util.collectNixFiles` centralizes recursive discovery of Nix files. Repository Nix code uses one implementation. + +## Remove Nix file suffixes with the utility + +### Rule + +Use `util.removeNixSuffix` to remove a `.nix` suffix from a path. +Do not call `builtins.baseNameOf` or `lib.removeSuffix ".nix"` outside the utility definition. + +### Rationale + +The utility centralizes Nix file-name normalization.