aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2005-07-13 17:39:10 +0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2005-07-13 17:39:10 +0000
commita5ceb5bc0b2d7fd796cb49e29d45bf568dc0df2f (patch)
treede5311006e3664c797e060d7953537a045555392 /scripts
parentd4879b4dfe05708eb174129141299fb343ceb946 (diff)
* nix-build: default to `./default.nix' if no paths are specified.
So when using Nix as a build tool, you can just say `nix-build' and it will build the top-level derivation defined in `default.nix'.
Diffstat (limited to 'scripts')
-rw-r--r--scripts/nix-build.in66
1 files changed, 38 insertions, 28 deletions
diff --git a/scripts/nix-build.in b/scripts/nix-build.in
index 4c420dadf..cb7137a47 100644
--- a/scripts/nix-build.in
+++ b/scripts/nix-build.in
@@ -2,11 +2,6 @@
nixExpr=$1
-if test -z "$nixExpr"; then
- echo "syntax: $0 NIX-EXPR..." >&2
- exit 1
-fi
-
extraArgs=
addDrvLink=0
addOutLink=1
@@ -16,9 +11,15 @@ trap 'rm -f ./.nix-build-tmp-*' EXIT
# Process the arguments.
+exprs=
for i in "$@"; do
case "$i" in
-
+
+ --help)
+ echo "syntax: $0 [NIX-EXPR...]" >&2
+ exit 0
+ ;;
+
--add-drv-link)
addDrvLink=1
;;
@@ -32,28 +33,37 @@ for i in "$@"; do
;;
*)
- # Instantiate the Nix expression.
- prefix=
- if test "$addDrvLink" = 0; then prefix=.nix-build-tmp-; fi
- storeExprs=$(@bindir@/nix-instantiate \
- --add-root ./${prefix}derivation --indirect \
- "$i")
-
- for j in $storeExprs; do
- echo "store expression is $(readlink "$j")" >&2
- done
-
- # Build the resulting store derivation.
- prefix=
- if test "$addOutLink" = 0; then prefix=.nix-build-tmp-; fi
- outPaths=$(@bindir@/nix-store \
- --add-root ./${prefix}result --indirect \
- -rv $extraArgs $storeExprs)
-
- for j in $outPaths; do
- echo "$(readlink "$j")"
- done
-
+ exprs="$exprs $i"
;;
esac
done
+
+if test -z "$exprs"; then
+ exprs="./default.nix"
+fi
+
+# Process the specified Nix expressions.
+for i in $exprs; do
+
+ # Instantiate the Nix expression.
+ prefix=
+ if test "$addDrvLink" = 0; then prefix=.nix-build-tmp-; fi
+ storeExprs=$(@bindir@/nix-instantiate \
+ --add-root ./${prefix}derivation --indirect \
+ "$i")
+
+ for j in $storeExprs; do
+ echo "store expression is $(readlink "$j")" >&2
+ done
+
+ # Build the resulting store derivation.
+ prefix=
+ if test "$addOutLink" = 0; then prefix=.nix-build-tmp-; fi
+ outPaths=$(@bindir@/nix-store \
+ --add-root ./${prefix}result --indirect \
+ -rv $extraArgs $storeExprs)
+
+ for j in $outPaths; do
+ echo "$(readlink "$j")"
+ done
+done