feat(services): introduce structured bundles
Some checks failed
build liminix / build_vm_qemu_mips (push) Failing after 27s
Some checks failed
build liminix / build_vm_qemu_mips (push) Failing after 27s
Structured bundles keep their original contents as a `passthru` field named `components`. This enable users to depend on a specific piece of the bundle instead of the whole bundle. Signed-off-by: Raito Bezarius <masterancpp@gmail.com>
This commit is contained in:
parent
ebcdbf76bc
commit
0fb671023c
2 changed files with 18 additions and 4 deletions
|
@ -39,6 +39,7 @@ let
|
|||
, contents ? []
|
||||
, buildInputs ? []
|
||||
, isTrigger ? false
|
||||
, passthru ? {}
|
||||
} @ args:
|
||||
stdenvNoCC.mkDerivation {
|
||||
# we use stdenvNoCC to avoid generating derivations with names
|
||||
|
@ -50,6 +51,8 @@ let
|
|||
dependencies = builtins.map (d: d.name) dependencies;
|
||||
contents = builtins.map (d: d.name) contents;
|
||||
builder = ./builder.sh;
|
||||
|
||||
inherit passthru;
|
||||
};
|
||||
|
||||
longrun = {
|
||||
|
@ -100,7 +103,18 @@ let
|
|||
serviceType = "bundle";
|
||||
inherit contents dependencies;
|
||||
});
|
||||
structuredBundle = {
|
||||
name
|
||||
, contents ? {}
|
||||
, dependencies ? []
|
||||
, ...
|
||||
} @ args: service (args // {
|
||||
serviceType = "bundle";
|
||||
contents = builtins.attrValues contents;
|
||||
inherit dependencies;
|
||||
passthru.components = contents;
|
||||
});
|
||||
target = bundle;
|
||||
in {
|
||||
inherit target bundle oneshot longrun output;
|
||||
inherit target bundle oneshot longrun output structuredBundle;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue