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. # Build or fetch all dependencies of the derivation.
my @inputDrvs = grep { my $x = $_; (grep { $x =~ $_ } @envExclude) == 0 } @{$drv->{inputDrvs}}; 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"; or die "$0: failed to build all dependencies\n";
# Set the environment. # Set the environment.

View file

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