pkgs.writeErofsLayers,profiles/ch-runner: MVE

$ nix-build -A examples.dummy.config.debug.closure.erofs.list | xargs
cat | xargs du -h
749M    /nix/store/bzfv5x6lycq6hzhjv6d6vlk1q8fdg9di-base0.erofs
24M     /nix/store/hp41jfq36y0mmjrzqilyh3jfsvqic3kb-nixos.erofs

$ nix run -f . examples.dummy.config.uvms.cloud-hypervisor.runner
...
<<< Welcome to NixOS 25.11pre-git (x86_64) - ttyS0 >>>

nixos login:

The definition of the `pkgs` fixpoint was moved to pkgs/default.nix.
For that, dirToAttrs was moved to lib/, imported ad hoc
This commit is contained in:
Else, Someone 2025-09-19 16:28:48 +03:00
parent 1828835a1d
commit 28d3f89ad4
12 changed files with 428 additions and 77 deletions

20
lib/dirToAttrs.nix Normal file
View file

@ -0,0 +1,20 @@
{ lib }:
root: patterns: f:
lib.listToAttrs (
lib.concatMap (
dirent:
let
fname = dirent.name;
typ = dirent.value;
fpath = root + "/${fname}";
doMatch =
pat:
let
match = pat fpath fname typ;
value = f match fpath typ;
in
if match == null then [ ] else [ (lib.nameValuePair match value) ];
in
(lib.take 1 (lib.concatMap (doMatch) patterns))
) (lib.attrsToList (builtins.readDir root))
)

7
lib/mkIfMicrovmGuest.nix Normal file
View file

@ -0,0 +1,7 @@
{
lib,
options,
config,
}:
def:
lib.optionalAttrs (options ? "microvm"."guest"."enable") (lib.mkIf config.microvm.guest.enable def)