set PATH for test executables in the library.sh

master
Alexander Tomokhov 2023-12-22 13:06:01 +04:00
parent d9c0821e76
commit f0df0830a2
1 changed files with 44 additions and 41 deletions

View File

@ -17,66 +17,69 @@
{ {
nativeBuildInputs = [ pkgs.makeWrapper ]; nativeBuildInputs = [ pkgs.makeWrapper ];
} '' } ''
ls -l install -m755 ${script} -D $out/bin/${name}
install -m755 ${script} \
-D $out/bin/${name}
patchShebangs $out/bin/${name} patchShebangs $out/bin/${name}
wrapProgram $out/bin/${name} \ wrapProgram $out/bin/${name} \
${lib.strings.concatMapStringsSep "\n" ${lib.strings.concatMapStringsSep "\n"
({name, value}: "--prefix ${name} : ${value}") env-vars} \ ({name, value}: ''--set ${name} "${value}"'') env-vars} \
--prefix PATH : ${with pkgs; lib.makeBinPath [ --prefix PATH : ${with pkgs; lib.makeBinPath [
curl curl
diffutils diffutils
gnutar
gzip gzip
jd-diff-patch jd-diff-patch
jq jq
openssh openssh
gnutar
]} ]}
''; '';
scripts-with-envs = [
{
name = "query-minimum-services";
script = ./query-services-state.sh;
env-vars = [{
name = "EXPECTED_RESPONSE_FILE";
value = ./minimal-services-expected-response.json;
}];
}
{
name = "query-all-services";
script = ./query-services-state.sh;
env-vars = [{
name = "EXPECTED_RESPONSE_FILE";
value = ./all-services-expected-response.json;
}];
}
{
name = "enable-service";
script = ./enable-service.sh;
env-vars = [ ];
}
{
name = "nixos-rebuild";
script = ./nixos-rebuild.sh;
env-vars = [ ];
}
];
in in
{ {
packages.${system} = lib.attrsets.listToAttrs packages.${system} = lib.attrsets.listToAttrs
( (map
(map (a@{ name, ... }: lib.attrsets.nameValuePair name (makeTestProgram a))
(a@{ name, ... }: lib.attrsets.nameValuePair name (makeTestProgram a)) scripts-with-envs
)
//
{
library = pkgs.writeText "library.sh" (
(builtins.readFile ./library.sh) + (lib.strings.concatStrings
[ [
{ "export PATH="
name = "query-minimum-services"; (lib.makeBinPath
script = ./query-services-state.sh; (map (x: self.packages.${system}.${x.name}) scripts-with-envs))
env-vars = [{ ":$PATH"
name = "EXPECTED_RESPONSE_FILE";
value = ./minimal-services-expected-response.json;
}];
}
{
name = "query-all-services";
script = ./query-services-state.sh;
env-vars = [{
name = "EXPECTED_RESPONSE_FILE";
value = ./all-services-expected-response.json;
}];
}
{
name = "enable-service";
script = ./enable-service.sh;
env-vars = [ ];
}
{
name = "nixos-rebuild";
script = ./nixos-rebuild.sh;
env-vars = [ ];
}
] ]
) )
++ [
{
name = "library";
value =
builtins.filterSource (p: _t: baseNameOf p == "library.sh") ./.;
}
]
); );
};
devShells.${system}.default = pkgs.mkShell devShells.${system}.default = pkgs.mkShell
{ {
packages = with pkgs; packages = with pkgs;