refactor(flake): assemble repository modules
This commit is contained in:
@@ -53,7 +53,7 @@ Use the simplest accurate word when a term is not listed.
|
||||
| assembly file | Nix | A Nix file under `flake/` that constructs flake outputs or arguments passed to NixOS modules. |
|
||||
| assembly function | Nix | A project function exposed under `flake` because it creates modules, systems, or assembly values. |
|
||||
| library file | Nix | A Nix file that defines reusable project functions instead of a NixOS module or flake output. |
|
||||
| library function | Nix | A pure project function exposed under `flake.lib`. |
|
||||
| library function | Nix | A pure project function exposed under `flake.util`. |
|
||||
| NixOS module | Nix | A Nix file evaluated by `nixosSystem` for a NixOS configuration. |
|
||||
| overlay | Nix | A function that modifies a Nix package set by adding or replacing packages. |
|
||||
| workspace | Window management | A named or numbered group of windows in a graphical session. Some desktop environments call this a virtual desktop. |
|
||||
|
||||
10
docs/nix.md
10
docs/nix.md
@@ -10,14 +10,14 @@ Read this document with `docs/dictionary.md`.
|
||||
|
||||
Use `lib` only for the base `nixpkgs.lib` value.
|
||||
Do not use `lib` for project functions.
|
||||
Use `flake.lib` for library functions passed through module arguments.
|
||||
Use `flake.util` for library functions passed through module arguments.
|
||||
Use `flake.mk<Name>` for assembly functions passed through module arguments.
|
||||
|
||||
Avoid:
|
||||
|
||||
```nix
|
||||
specialArgs = {
|
||||
lib = flakeLib;
|
||||
lib = util;
|
||||
};
|
||||
```
|
||||
|
||||
@@ -38,20 +38,20 @@ Then call project functions through `flake` inside modules:
|
||||
...
|
||||
}:
|
||||
{
|
||||
networking.networkmanager.unmanaged = [ "interface-name:${flake.lib.bridgeName 10}" ];
|
||||
networking.networkmanager.unmanaged = [ "interface-name:${flake.util.bridgeName 10}" ];
|
||||
}
|
||||
```
|
||||
|
||||
### Name project function namespaces by role
|
||||
|
||||
Put pure project functions under `flake.lib`.
|
||||
Put pure project functions under `flake.util`.
|
||||
Put functions that create modules, systems, or assembly values under `flake`.
|
||||
This keeps data-only functions separate from functions that carry flake context.
|
||||
|
||||
Avoid:
|
||||
|
||||
```nix
|
||||
flake.lib.mkGuest { name = "sample"; }
|
||||
flake.util.mkGuest { name = "sample"; }
|
||||
```
|
||||
|
||||
Use:
|
||||
|
||||
Reference in New Issue
Block a user