README driven development
This commit is contained in:
commit
ae0e93667e
34
README.md
Normal file
34
README.md
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# nixos-generate-facts - a data-driven alternative to nixos-generate-config
|
||||||
|
|
||||||
|
nixos-generate-config has two problems:
|
||||||
|
1. It only ships on machines that already have Nix available.
|
||||||
|
2. It outputs Nix code instead of data.
|
||||||
|
|
||||||
|
The first point is mostly relevant to cases where you want to bootstrap a new
|
||||||
|
server with a remote tool like nixos-anywhere. It should be possible to gather
|
||||||
|
the machine facts without first installing Nix. Otherwise there is a bootstrap
|
||||||
|
problem.
|
||||||
|
|
||||||
|
The second point is for everybody. If instead of generating Nix code we would
|
||||||
|
be generating a JSON-like data structure of facts about the machine. This can
|
||||||
|
be recorded and loaded by Nix. Or added to the nixos-hardware repo. It can be
|
||||||
|
used for user diagnostics. It inverts the control where the NixOS module
|
||||||
|
system can now make decisions on which kernel modules to load over time.
|
||||||
|
|
||||||
|
## Status: vaporware
|
||||||
|
|
||||||
|
The project is currently just a README.
|
||||||
|
|
||||||
|
The next step is going to generate the minimal binary and adapter so that I
|
||||||
|
can replace my machine's hardware-configuration.nix
|
||||||
|
|
||||||
|
Once proven, I'm hoping to integrate that project upstream.
|
||||||
|
|
||||||
|
## How the project works
|
||||||
|
|
||||||
|
The project has two parts:
|
||||||
|
|
||||||
|
1. The binary that scans the system and outputs JSON or TOML.
|
||||||
|
2. A NixOS module that can load that data and make decisions.
|
||||||
|
|
||||||
|
That's it.
|
Loading…
Reference in New Issue
Block a user