about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--doc/manual/nix-shell.xml18
-rwxr-xr-xscripts/nix-build.in3
2 files changed, 14 insertions, 7 deletions
diff --git a/doc/manual/nix-shell.xml b/doc/manual/nix-shell.xml
index 866b3413b967..e57c726f5394 100644
--- a/doc/manual/nix-shell.xml
+++ b/doc/manual/nix-shell.xml
@@ -31,20 +31,26 @@
     <arg><option>--command</option> <replaceable>cmd</replaceable></arg>
     <arg><option>--exclude</option> <replaceable>regexp</replaceable></arg>
     <arg><option>--pure</option></arg>
-    <arg choice='plain' rep='repeat'><replaceable>paths</replaceable></arg>
+    <arg><replaceable>path</replaceable></arg>
   </cmdsynopsis>
 </refsynopsisdiv>
 
 <refsection><title>Description</title>
 
-<para>The command <command>nix-shell</command> will build
-the dependencies of the specified derivation, but not the derivation
+<para>The command <command>nix-shell</command> will build the
+dependencies of the specified derivation, but not the derivation
 itself.  It will then start an interactive shell in which all
-environment variables defined by the derivation have been set to their
-corresponding values, and the script <literal>$stdenv/setup</literal>
-has been sourced.  This is useful for reproducing the environment of a
+environment variables defined by the derivation
+<replaceable>path</replaceable> have been set to their corresponding
+values, and the script <literal>$stdenv/setup</literal> has been
+sourced.  This is useful for reproducing the environment of a
 derivation for development.</para>
 
+<para>If <replaceable>path</replaceable> is not given,
+<command>nix-shell</command> defaults to
+<filename>shell.nix</filename> if it exists, and
+<filename>default.nix</filename> otherwise.</para>
+
 </refsection>
 
 
diff --git a/scripts/nix-build.in b/scripts/nix-build.in
index 168730bbc92d..fff71021fbf8 100755
--- a/scripts/nix-build.in
+++ b/scripts/nix-build.in
@@ -149,7 +149,8 @@ for (my $n = 0; $n < scalar @ARGV; $n++) {
     }
 }
 
-@exprs = ("./default.nix") if scalar @exprs == 0;
+@exprs = ("shell.nix") if scalar @exprs == 0 && $runEnv && -e "shell.nix";
+@exprs = ("default.nix") if scalar @exprs == 0;
 
 $ENV{'IN_NIX_SHELL'} = 1 if $runEnv;