diff options
| author | Kamen Mladenov <kamen@syndamia.com> | 2025-01-30 15:49:27 +0200 |
|---|---|---|
| committer | Kamen Mladenov <kamen@syndamia.com> | 2025-01-30 15:49:27 +0200 |
| commit | 53ed6b623f49bdf68c8af79ad763d95bee19123c (patch) | |
| tree | 4fae02c2cd18e8178e75ef9d1852848639a3e0fc | |
| parent | 6eeab4cfaedb568a8a4e2e194fbef94559618920 (diff) | |
| download | zkVMs-benchmarks-53ed6b623f49bdf68c8af79ad763d95bee19123c.tar zkVMs-benchmarks-53ed6b623f49bdf68c8af79ad763d95bee19123c.tar.gz zkVMs-benchmarks-53ed6b623f49bdf68c8af79ad763d95bee19123c.zip | |
feat(flake): Implement single guest packages
| -rw-r--r-- | flake.nix | 22 | ||||
| -rw-r--r-- | guest.nix | 19 |
2 files changed, 35 insertions, 6 deletions
@@ -29,6 +29,12 @@ (pkgs.lib.filterAttrs (_: type: type == "directory") (builtins.readDir ./zkvms)); + + guests = [ null ] ++ (builtins.attrNames + (pkgs.lib.filterAttrs + (_: type: type == "directory") + (builtins.readDir ./guests))); + foldr = pkgs.lib.foldr; createPackages = guestName: let @@ -46,14 +52,18 @@ {} zkvms; - guests = [ null ] ++ (builtins.attrNames - (pkgs.lib.filterAttrs - (_: type: type == "directory") - (builtins.readDir ./guests))); - in { - packages.${system} = pkgs.lib.foldr + hostPackages = foldr (guest: accum: accum // (createPackages guest)) {} guests; + + guestPackages = foldr + (guest: accum: accum // { + ${guest} = callPackage ./guest.nix { inherit guest; inherit zkvms; inherit hostPackages; }; + }) + {} + guests; + in { + packages.${system} = hostPackages // guestPackages; }; } diff --git a/guest.nix b/guest.nix new file mode 100644 index 0000000..9dff41d --- /dev/null +++ b/guest.nix @@ -0,0 +1,19 @@ +{ writeShellApplication, + guest, + zkvms, + hostPackages, + lib, +}: +writeShellApplication { + name = "${guest}"; + + runtimeInputs = lib.foldr + (zkvm: accum: accum ++ [ hostPackages."${zkvm}/${guest}" ]) + [] + zkvms; + + text = lib.foldr + (zkvm: accum: accum + hostPackages."${zkvm}/${guest}" + "/bin/${zkvm}_${guest} \"$@\"\n") + "" + zkvms; +} |
