feat(nix/runExecline): add runExecline
runExecline is a primitive that just does not care. It’s similar to `runCommand`, but instead of concatenating bash scripts left and right, it actually *uses* the features of `derivation`, passing things to `args` and making it possible to overwrite the `builder` in a sensible manner. Additionally, it provides a way to pass a nix string to `stdin` of the build script. Similar to `writeExecline`, the passed script is not a string, but a nested list of nix lists representing execline blocks. Escaping is done by the implementation, the user can just use normal nix strings. Change-Id: I890d9e5d921207751cdc8cc4309381395d92742f Reviewed-on: https://cl.tvl.fyi/c/depot/+/701 Reviewed-by: BuildkiteCI Reviewed-by: isomer <isomer@tvl.fyi> Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
This commit is contained in:
parent
7a6a007302
commit
4402c363b6
5 changed files with 254 additions and 1 deletions
19
nix/runExecline/default.nix
Normal file
19
nix/runExecline/default.nix
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
{ depot, pkgs, lib, ... }:
|
||||
let
|
||||
runExecline = import ./runExecline.nix {
|
||||
inherit (pkgs) stdenv;
|
||||
inherit (depot.nix) escapeExecline getBins;
|
||||
inherit pkgs lib;
|
||||
};
|
||||
|
||||
tests = import ./tests.nix {
|
||||
inherit runExecline;
|
||||
inherit (depot.nix) getBins;
|
||||
inherit (pkgs) stdenv coreutils;
|
||||
inherit pkgs;
|
||||
};
|
||||
|
||||
in {
|
||||
__functor = _: runExecline;
|
||||
inherit tests;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue