40 lines
840 B
Nix
40 lines
840 B
Nix
/*
|
|
Run with:
|
|
|
|
cd nixpkgs
|
|
nix-build -A tests.trivial-builders.writeShellScriptBin
|
|
*/
|
|
|
|
{ lib, writeShellScriptBin, runCommand }:
|
|
let
|
|
output = "hello";
|
|
pkg = writeShellScriptBin "test-script" ''
|
|
echo ${lib.escapeShellArg output}
|
|
'';
|
|
in
|
|
assert pkg.meta.mainProgram == "test-script";
|
|
runCommand "test-writeShellScriptBin" { } ''
|
|
|
|
echo Testing with getExe...
|
|
|
|
target=${lib.getExe pkg}
|
|
expected=${lib.escapeShellArg output}
|
|
got=$("$target")
|
|
if [[ "$got" != "$expected" ]]; then
|
|
echo "wrong output: expected $expected, got $got"
|
|
exit 1
|
|
fi
|
|
|
|
echo Testing with makeBinPath...
|
|
|
|
PATH="${lib.makeBinPath [ pkg ]}:$PATH"
|
|
got=$(test-script)
|
|
if [[ "$got" != "$expected" ]]; then
|
|
echo "wrong output: expected $expected, got $got"
|
|
exit 1
|
|
fi
|
|
|
|
touch $out
|
|
''
|
|
|