nix-shell: Handle --option correctly

Fixes #181.
This commit is contained in:
Eelco Dolstra 2013-12-20 13:10:14 +01:00
parent 7b0d8fb23d
commit 65a6452240
2 changed files with 7 additions and 3 deletions

View File

@ -177,7 +177,7 @@ 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", @buildArgs, @inputDrvs, @{$drv->{inputSrcs}}) == 0
or die "$0: failed to build all dependencies\n";
# Set the environment.

View File

@ -35,6 +35,7 @@ void printHelp()
static Path gcRoot;
static int rootNr = 0;
static bool indirectRoot = false;
static bool noOutput = true;
LocalStore & ensureLocalStore()
@ -139,8 +140,9 @@ static void opRealise(Strings opFlags, Strings opArgs)
if (!ignoreUnknown)
foreach (Paths::iterator, i, paths) {
PathSet paths = realisePath(*i, false);
foreach (PathSet::iterator, j, paths)
cout << format("%1%\n") % *j;
if (!noOutput)
foreach (PathSet::iterator, j, paths)
cout << format("%1%\n") % *j;
}
}
@ -900,6 +902,8 @@ void run(Strings args)
}
else if (arg == "--indirect")
indirectRoot = true;
else if (arg == "--no-output")
noOutput = true;
else if (arg[0] == '-') {
opFlags.push_back(arg);
if (arg == "--max-freed" || arg == "--max-links" || arg == "--max-atime") { /* !!! hack */