* Flag `--no-link' suppresses symlinking to the output path.

* Handle multiple derivations correctly.
This commit is contained in:
Eelco Dolstra 2004-08-18 12:11:31 +00:00
parent 966bd9d19f
commit 937ce0cd21
1 changed files with 19 additions and 11 deletions

View File

@ -8,27 +8,35 @@ if test -z "$nixExpr"; then
fi fi
extraArgs= extraArgs=
noLink=
for i in "$@"; do for i in "$@"; do
case "$i" in case "$i" in
--no-link)
noLink=1
;;
-*) -*)
extraArgs="$extraArgs $i" extraArgs="$extraArgs $i"
;; ;;
*) *)
storeExpr=$(nix-instantiate "$i") storeExprs=$(nix-instantiate "$i")
for j in $storeExpr; do for j in $storeExprs; do
echo "store expression is $j" >&2 echo "store expression is $j" >&2
done done
outPath=$(nix-store -qnfv $extraArgs $storeExpr) outPaths=$(nix-store -qnfv $extraArgs $storeExprs)
echo $outPath for j in $outPaths; do
if test -e result; then echo "$j"
if ! test -L result; then if test -z "$noLink"; then
echo "cannot remove \`result\' (not a symlink)" if test -e result; then
exit 1 if ! test -L result; then
echo "cannot remove \`result\' (not a symlink)"
exit 1
fi
rm result
fi
ln -s "$j" result
fi fi
rm result done
fi
ln -s $outPath result
;; ;;
esac esac
done done