diff --git a/doc/manual/nix-build.xml b/doc/manual/nix-build.xml
index 447ef126b..0462401bc 100644
--- a/doc/manual/nix-build.xml
+++ b/doc/manual/nix-build.xml
@@ -25,6 +25,10 @@ to multiple derivations, multiple sequentially numbered symlinks are
created (result, result-2,
and so on).
+If no paths are specified, then
+nix-build will use default.nix
+in the current directory, if it exists.
+
nix-build is essentially a wrapper
around nix-instantiate
diff --git a/doc/manual/package-management.xml b/doc/manual/package-management.xml
index 7620531c0..d225b41ee 100644
--- a/doc/manual/package-management.xml
+++ b/doc/manual/package-management.xml
@@ -176,7 +176,7 @@ set.ProfilesProfiles and user environments are Nix’s mechanism for
-implementing the ability to allow differens users to have different
+implementing the ability to allow different users to have different
configurations, and to do atomic upgrades and rollbacks. To
understand how they work, it’s useful to know a bit about how Nix
works. In Nix, components are stored in unique locations in the
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