From 3e94ffffd61573624883c02744f20ac3544ff9cb Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 27 Mar 2012 11:16:43 +0200 Subject: [PATCH] Allow the command executed by "nix-build --run-env" to be overriden with --command --- scripts/nix-build.in | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/scripts/nix-build.in b/scripts/nix-build.in index b36ec0208b..cc80089fb6 100755 --- a/scripts/nix-build.in +++ b/scripts/nix-build.in @@ -14,6 +14,8 @@ my @instArgs = (); my @buildArgs = (); my @exprs = (); +my $envCommand = "p=\$PATH; source \$stdenv/setup; PATH=\$PATH:\$p; exec $ENV{SHELL}"; + my $tmpDir = tempdir("nix-build.XXXXXX", CLEANUP => 1, TMPDIR => 1) or die "cannot create a temporary directory"; @@ -125,6 +127,12 @@ EOF $runEnv = 1; } + elsif ($arg eq "--command") { + $n++; + die "$0: `$arg' requires an argument\n" unless $n < scalar @ARGV; + $envCommand = $ARGV[$n]; + } + elsif (substr($arg, 0, 1) eq "-") { push @buildArgs, $arg; } @@ -168,7 +176,7 @@ foreach my $expr (@exprs) { # convenience, source $stdenv/setup to setup additional # environment variables. Also don't lose the current $PATH # directories. - exec($ENV{SHELL}, "-c", "p=\$PATH; source \$stdenv/setup; PATH=\$PATH:\$p; exec $ENV{SHELL}"); + exec($ENV{SHELL}, "-c", $envCommand); die; }