docs(nix): define default file placement
This commit is contained in:
38
docs/nix.md
38
docs/nix.md
@@ -66,6 +66,44 @@ A module is self-contained configuration under `modules/`.
|
||||
A module configures one program, service, or subsystem.
|
||||
Files under `hosts/`, `guests/`, and `modules/` return NixOS modules.
|
||||
|
||||
### Use `default.nix` for module directories with support files
|
||||
|
||||
Use `default.nix` as the primary module when a module directory owns support files.
|
||||
Keep sibling files for data or code read by that primary module.
|
||||
|
||||
Avoid:
|
||||
|
||||
```text
|
||||
modules/shell/fish/fish.nix
|
||||
modules/shell/fish/config.fish
|
||||
```
|
||||
|
||||
Use:
|
||||
|
||||
```text
|
||||
modules/shell/fish/default.nix
|
||||
modules/shell/fish/config.fish
|
||||
```
|
||||
|
||||
### Use non-module `default.nix` files only for directory assembly
|
||||
|
||||
Outside `modules/`, use `default.nix` to connect files in its directory.
|
||||
Do not define primary assembly functions in `default.nix`.
|
||||
Put primary assembly functions in named files.
|
||||
|
||||
Avoid:
|
||||
|
||||
```text
|
||||
flake/default.nix # defines mkHost
|
||||
```
|
||||
|
||||
Use:
|
||||
|
||||
```text
|
||||
flake/default.nix # imports ./hosts.nix
|
||||
flake/hosts.nix # defines mkHost
|
||||
```
|
||||
|
||||
## Function Arguments
|
||||
|
||||
### Use closed interfaces for assembly files and library files
|
||||
|
||||
Reference in New Issue
Block a user