diff --git a/flake.nix b/flake.nix index e6c0fb0..955ab20 100644 --- a/flake.nix +++ b/flake.nix @@ -62,7 +62,7 @@ export HTTPS_PROXY=http://127.0.0.1:7000 export NO_PROXY=localhost,127.0.0.1 - trap "${pkgs.coreutils}/bin/kill $HTTP_SOCAT_PID" EXIT + trap "${pkgs.coreutils}/bin/kill $HTTP_SOCAT_PID || true" EXIT ${command pkgs} "$@" ''; @@ -145,14 +145,14 @@ ${pkgs.socat}/bin/socat UNIX-LISTEN:"$JD/net.sock",fork TCP:127.0.0.1:"$FREE_PORT" &>/dev/null & SOCAT_PID=$! - trap "${pkgs.coreutils}/bin/rm -rf $JD; ${pkgs.coreutils}/bin/kill $PROXY_PID $SOCAT_PID" EXIT + trap "${pkgs.coreutils}/bin/rm -rf $JD; ${pkgs.coreutils}/bin/kill $PROXY_PID $SOCAT_PID || true" EXIT export NIX_CONFIG=" ''${NIX_CONFIG:-} extra-experimental-features = nix-command flakes substitute = true" - ${jailed}/bin/unsafe-cell + ${jailed}/bin/unsafe-cell "$@" ''; in host-script diff --git a/tests.nix b/tests.nix index 50f6fe7..9a636b1 100644 --- a/tests.nix +++ b/tests.nix @@ -19,6 +19,7 @@ nixpkgs.lib.genAttrs logDir ? "$JD", worktreePath, nixDaemonSocket ? "/var/nix/daemon-socket", + extraArgs ? "", }: let cell = unsafe-cell.lib.mkCell.${system} { @@ -38,7 +39,7 @@ nixpkgs.lib.genAttrs export HOME=$(pwd) export LANG=C mkdir ./cell - ${cell} + ${cell} ${extraArgs} touch $out echo ":: test passed: ${name}" ''; @@ -379,6 +380,27 @@ nixpkgs.lib.genAttrs echo "ok 1 - extra combinator env var propagated" ''; }; + + # CLI arguments forwarded into the jail + cli-args = mkJailTest "cli-args" { + worktreePath = "./cell"; + extraArgs = "foo bar baz"; + command = + pkgs: + pkgs.writeScript "cli-args" '' + set -euo pipefail + [ "$1" = "foo" ] + echo "ok 2 - first arg is foo" + + [ "$2" = "bar" ] + echo "ok 3 - second arg is bar" + + [ "$3" = "baz" ] + echo "ok 4 - third arg is baz" + + echo "PASS: CLI arguments forwarded correctly" + ''; + }; }; allTests = builtins.attrValues tests;