darwin.linux-builder: Expose nixosConfig and nixosOptions attributes
I chose not to do nixos.{config, options} because that would make it look too much like a configuration object, which it is not. A configuration object I would define as for example the result of calling NixOS, an attrset with `_type = "configuration";`. Recreating a configuration object without evalModules is quite feasible but not guaranteed to be correct, and not maintainable.
This commit is contained in:
parent
9443a0b51e
commit
508c310222
2 changed files with 20 additions and 1 deletions
|
@ -157,3 +157,17 @@ in the example below and rebuild.
|
|||
You may make any other changes to your VM in this attribute set. For example,
|
||||
you could enable Docker or X11 forwarding to your Darwin host.
|
||||
|
||||
## Troubleshooting the generated configuration {#sec-darwin-builder-troubleshoot}
|
||||
|
||||
The `linux-builder` package exposes the attributes `nixosConfig` and `nixosOptions` that allow you to inspect the generated NixOS configuration in the `nix repl`. For example:
|
||||
|
||||
```
|
||||
$ nix repl --file ~/src/nixpkgs --argstr system aarch64-darwin
|
||||
|
||||
nix-repl> darwin.linux-builder.nixosConfig.nix.package
|
||||
«derivation /nix/store/...-nix-2.17.0.drv»
|
||||
|
||||
nix-repl> :p darwin.linux-builder.nixosOptions.virtualisation.memorySize.definitionsWithLocations
|
||||
[ { file = "/home/user/src/nixpkgs/nixos/modules/profiles/macos-builder.nix"; value = 3072; } ]
|
||||
|
||||
```
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ config, lib, ... }:
|
||||
{ config, lib, options, ... }:
|
||||
|
||||
let
|
||||
keysDirectory = "/var/keys";
|
||||
|
@ -167,6 +167,11 @@ in
|
|||
meta = (old.meta or { }) // {
|
||||
platforms = lib.platforms.darwin;
|
||||
};
|
||||
passthru = (old.passthru or { }) // {
|
||||
# Let users in the repl inspect the config
|
||||
nixosConfig = config;
|
||||
nixosOptions = options;
|
||||
};
|
||||
});
|
||||
|
||||
system = {
|
||||
|
|
Loading…
Reference in a new issue