From 1fbcf33a9ea0efa425e00b9818eb8962f98087b0 Mon Sep 17 00:00:00 2001 From: Sridhar Ratnakumar Date: Tue, 13 Jun 2023 13:41:24 -0400 Subject: [PATCH] Reintroduce shell_command; resolves #19 Thus we are no longer dependent on global bash. --- CHANGELOG.md | 4 +++- nix/process-compose/settings/default.nix | 22 ++++++++++++++++++---- nix/process-compose/test.nix | 11 ++++------- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f02d93..06b95ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,9 @@ ## Unreleased -- Add `testScript` option for adding flake checks based on nixosTest library. +- #18: Add `testScript` option for adding flake checks based on nixosTest library. +- Fixes + - #19: Add pkgs.bash to process-compose's path, so a global bash is not required. ## 0.1.0 (Jun 12, 2023) diff --git a/nix/process-compose/settings/default.nix b/nix/process-compose/settings/default.nix index 2624dca..7225d5b 100644 --- a/nix/process-compose/settings/default.nix +++ b/nix/process-compose/settings/default.nix @@ -41,15 +41,29 @@ in example = "./pc.log"; }; + shell = { + shell_argument = mkOption { + type = types.str; + default = "-c"; + example = "-c"; + }; + shell_command = mkOption { + type = types.str; + description = '' + The shell to use to run the process `command`s. + + For reproducibility across systems, by default this uses + `pkgs.bash`. + ''; + default = lib.getExe pkgs.bash; + }; + }; + version = mkOption { type = types.nullOr types.str; default = null; example = "0.5"; }; - - # NOTE: We don't allow the `shell` option because it meaningless in - # lieu of our use of pkgs.writeShellApplication (see command.nix). - }; }; example = diff --git a/nix/process-compose/test.nix b/nix/process-compose/test.nix index 088a0e4..cdf6b06 100644 --- a/nix/process-compose/test.nix +++ b/nix/process-compose/test.nix @@ -17,12 +17,11 @@ in }; outputs.check = mkOption { type = types.nullOr types.package; - default = if config.testScript == null then null else + default = if config.testScript == null then null else pkgs.nixosTest { inherit (config) testScript; name = "process-compose-${name}-test"; nodes.machine = { - environment.systemPackages = [ pkgs.bash ]; # process-compose requires it. systemd.services.process-compose = { enable = true; wantedBy = [ "default.target" ]; @@ -32,9 +31,7 @@ in name = "process-compose-${name}"; text = '' set -x - echo "Launching procese-compose on ${name} ..." - # make bash available to process-compose - export PATH=/run/current-system/sw/bin:$PATH + echo "Launching process-compose on ${name} ..." ${lib.getExe config.outputs.package} -t=false ''; }); @@ -42,6 +39,6 @@ in }; }; }; - }; + }; }; -} \ No newline at end of file +}