From f0df0830a2157889a0ebab4b966ac0907373af16 Mon Sep 17 00:00:00 2001 From: Alexander Tomokhov Date: Fri, 22 Dec 2023 13:06:01 +0400 Subject: [PATCH] set PATH for test executables in the library.sh --- flake.nix | 85 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 44 insertions(+), 41 deletions(-) diff --git a/flake.nix b/flake.nix index 1b92a2f..18bcdb7 100644 --- a/flake.nix +++ b/flake.nix @@ -17,66 +17,69 @@ { nativeBuildInputs = [ pkgs.makeWrapper ]; } '' - ls -l - install -m755 ${script} \ - -D $out/bin/${name} + install -m755 ${script} -D $out/bin/${name} patchShebangs $out/bin/${name} wrapProgram $out/bin/${name} \ ${lib.strings.concatMapStringsSep "\n" - ({name, value}: "--prefix ${name} : ${value}") env-vars} \ + ({name, value}: ''--set ${name} "${value}"'') env-vars} \ --prefix PATH : ${with pkgs; lib.makeBinPath [ curl diffutils + gnutar gzip jd-diff-patch jq 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 { packages.${system} = lib.attrsets.listToAttrs - ( - (map - (a@{ name, ... }: lib.attrsets.nameValuePair name (makeTestProgram a)) + (map + (a@{ name, ... }: lib.attrsets.nameValuePair name (makeTestProgram a)) + scripts-with-envs + ) + // + { + library = pkgs.writeText "library.sh" ( + (builtins.readFile ./library.sh) + (lib.strings.concatStrings [ - { - 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 = [ ]; - } + "export PATH=" + (lib.makeBinPath + (map (x: self.packages.${system}.${x.name}) scripts-with-envs)) + ":$PATH" ] ) - ++ [ - { - name = "library"; - value = - builtins.filterSource (p: _t: baseNameOf p == "library.sh") ./.; - } - ] ); + }; devShells.${system}.default = pkgs.mkShell { packages = with pkgs;