From 4661282fde9f37780877fbeeb34b06b0c221e6bf Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 28 Jul 2006 16:03:28 +0000 Subject: * `nix-instantiate ... --arg NAME VALUE': allow arguments to be passed to functions from the command line. * nix-build: started removing backticks. --- scripts/nix-build.in | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'scripts') diff --git a/scripts/nix-build.in b/scripts/nix-build.in index 645fdb1e6486..fab8fae84e74 100644 --- a/scripts/nix-build.in +++ b/scripts/nix-build.in @@ -77,6 +77,12 @@ EOF push @instArgs, ("--attr", $ARGV[$n]); } + elsif ($arg eq "--arg") { + die "$0: `--arg' requires two arguments\n" unless $n + 2 < scalar @ARGV; + push @instArgs, ("--arg", $ARGV[$n + 1], $ARGV[$n + 2]); + $n += 2; + } + elsif (substr($arg, 0, 1) eq "-") { push @buildArgs, $arg; } @@ -103,8 +109,10 @@ if (!defined $outLink) { foreach my $expr (@exprs) { # Instantiate. - my $drvPaths = `@bindir@/nix-instantiate --add-root "$drvLink" --indirect @instArgs "$expr"`; - my @drvPaths = split ' ', $drvPaths; + my @drvPaths; + open DRVPATHS, "-|", "@bindir@/nix-instantiate", "--add-root", $drvLink, "--indirect", @instArgs, $expr; + while () {chomp; push @drvPaths, $_;} + close DRVPATHS; foreach my $drvPath (@drvPaths) { my $target = readlink $drvPath; -- cgit 1.4.1