diff options
Diffstat (limited to 'scripts/nix-build.in')
-rwxr-xr-x | scripts/nix-build.in | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/scripts/nix-build.in b/scripts/nix-build.in index 8ac95e90e..07752f144 100755 --- a/scripts/nix-build.in +++ b/scripts/nix-build.in @@ -152,6 +152,8 @@ for (my $n = 0; $n < scalar @ARGV; $n++) { @exprs = ("./default.nix") if scalar @exprs == 0; +$ENV{'IN_NIX_SHELL'} = 1 if $runEnv; + foreach my $expr (@exprs) { @@ -177,13 +179,13 @@ foreach my $expr (@exprs) { # Build or fetch all dependencies of the derivation. my @inputDrvs = grep { my $x = $_; (grep { $x =~ $_ } @envExclude) == 0 } @{$drv->{inputDrvs}}; - system("$Nix::Config::binDir/nix-store -r @buildArgs @inputDrvs @{$drv->{inputSrcs}} > /dev/null") == 0 + system("$Nix::Config::binDir/nix-store", "-r", "--no-output", "--no-gc-warning", @buildArgs, @inputDrvs, @{$drv->{inputSrcs}}) == 0 or die "$0: failed to build all dependencies\n"; # Set the environment. if ($pure) { foreach my $name (keys %ENV) { - next if $name eq "HOME" || $name eq "USER" || $name eq "LOGNAME" || $name eq "DISPLAY" || $name eq "PATH"; + next if $name eq "HOME" || $name eq "USER" || $name eq "LOGNAME" || $name eq "DISPLAY" || $name eq "PATH" || $name eq "TERM" || $name eq "IN_NIX_SHELL"; delete $ENV{$name}; } # NixOS hack: prevent /etc/bashrc from sourcing /etc/profile. @@ -193,8 +195,6 @@ foreach my $expr (@exprs) { $ENV{'NIX_STORE'} = $Nix::Config::storeDir; $ENV{$_} = $drv->{env}->{$_} foreach keys %{$drv->{env}}; - $ENV{'IN_NIX_SHELL'} = 1; - # Run a shell using the derivation's environment. For # convenience, source $stdenv/setup to setup additional # environment variables and shell functions. Also don't lose @@ -211,6 +211,7 @@ foreach my $expr (@exprs) { 'set +e; ' . '[ -n "$PS1" ] && PS1="\n\[\033[1;32m\][nix-shell:\w]$\[\033[0m\] "; ' . 'unset NIX_ENFORCE_PURITY; ' . + 'unset NIX_INDENT_MAKE; ' . 'shopt -u nullglob; ' . $envCommand); $ENV{BASH_ENV} = $rcfile; |