98a990c6a6
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>
40 lines
845 B
Nix
40 lines
845 B
Nix
{ 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
|
||
]
|