feat(nix/getBins): add getBins
This is a simple-stupid “unix import system” for nix, for referencing binaries in `/bin/` by their name and lifting them to a Nix attrset. Allows for simple aliasing of executable names. Change-Id: Ifa23cb377201c3b08050c5026e9751e736afaf56 Reviewed-on: https://cl.tvl.fyi/c/depot/+/664 Reviewed-by: tazjin <mail@tazj.in>
This commit is contained in:
parent
15335e7b3d
commit
98a990c6a6
5 changed files with 93 additions and 0 deletions
40
nix/getBins/tests.nix
Normal file
40
nix/getBins/tests.nix
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
{ writeScriptBin, assertEq, it, runTestsuite, getBins }:
|
||||
|
||||
let
|
||||
drv = writeScriptBin "hello" "it’s me";
|
||||
drv2 = writeScriptBin "goodbye" "tschau";
|
||||
|
||||
bins = getBins drv [
|
||||
"hello"
|
||||
{ use = "hello"; as = "also-hello"; }
|
||||
]
|
||||
// getBins drv2 [ "goodbye" ]
|
||||
;
|
||||
|
||||
simple = it "path is equal to the executable name" [
|
||||
(assertEq "path"
|
||||
bins.hello
|
||||
"${drv}/bin/hello")
|
||||
(assertEq "content"
|
||||
(builtins.readFile bins.hello)
|
||||
"it’s me")
|
||||
];
|
||||
|
||||
useAs = it "use/as can be used to rename attributes" [
|
||||
(assertEq "path"
|
||||
bins.also-hello
|
||||
"${drv}/bin/hello")
|
||||
];
|
||||
|
||||
secondDrv = it "by merging attrsets you can build up bins" [
|
||||
(assertEq "path"
|
||||
bins.goodbye
|
||||
"${drv2}/bin/goodbye")
|
||||
];
|
||||
|
||||
in
|
||||
runTestsuite "getBins" [
|
||||
simple
|
||||
useAs
|
||||
secondDrv
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue