* Documented --attr / -A.

This commit is contained in:
Eelco Dolstra 2006-10-05 20:07:41 +00:00
parent 5d769de8a3
commit 8396b59286
5 changed files with 60 additions and 6 deletions

View file

@ -11,6 +11,13 @@
<command>nix-build</command> <command>nix-build</command>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="opt-common-syn.xml#xpointer(/nop/*)" /> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="opt-common-syn.xml#xpointer(/nop/*)" />
<arg><option>--arg</option> <replaceable>name</replaceable> <replaceable>value</replaceable></arg> <arg><option>--arg</option> <replaceable>name</replaceable> <replaceable>value</replaceable></arg>
<arg>
<group choice='req'>
<arg choice='plain'><option>--attr</option></arg>
<arg choice='plain'><option>-A</option></arg>
</group>
<replaceable>attrPath</replaceable>
</arg>
<arg><option>--add-drv-link</option></arg> <arg><option>--add-drv-link</option></arg>
<arg><option>--drv-link </option><replaceable>drvlink</replaceable></arg> <arg><option>--drv-link </option><replaceable>drvlink</replaceable></arg>
<arg><option>--no-out-link</option></arg> <arg><option>--no-out-link</option></arg>

View file

@ -11,6 +11,13 @@
<command>nix-env</command> <command>nix-env</command>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="opt-common-syn.xml#xpointer(/nop/*)" /> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="opt-common-syn.xml#xpointer(/nop/*)" />
<arg><option>--arg</option> <replaceable>name</replaceable> <replaceable>value</replaceable></arg> <arg><option>--arg</option> <replaceable>name</replaceable> <replaceable>value</replaceable></arg>
<arg>
<group choice='req'>
<arg choice='plain'><option>--attr</option></arg>
<arg choice='plain'><option>-A</option></arg>
</group>
<replaceable>attrPath</replaceable>
</arg>
<arg> <arg>
<group choice='req'> <group choice='req'>
<arg choice='plain'><option>--file</option></arg> <arg choice='plain'><option>--file</option></arg>
@ -252,7 +259,7 @@ number of possible ways:
</refsection> </refsection>
<refsection><title>Examples</title> <refsection xml:id='refsec-nix-env-install-examples'><title>Examples</title>
<para>To install a specific version of <command>gcc</command> from the <para>To install a specific version of <command>gcc</command> from the
active Nix expression: active Nix expression:

View file

@ -11,6 +11,13 @@
<command>nix-instantiate</command> <command>nix-instantiate</command>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="opt-common-syn.xml#xpointer(/nop/*)" /> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="opt-common-syn.xml#xpointer(/nop/*)" />
<arg><option>--arg</option> <replaceable>name</replaceable> <replaceable>value</replaceable></arg> <arg><option>--arg</option> <replaceable>name</replaceable> <replaceable>value</replaceable></arg>
<arg>
<group choice='req'>
<arg choice='plain'><option>--attr</option></arg>
<arg choice='plain'><option>-A</option></arg>
</group>
<replaceable>attrPath</replaceable>
</arg>
<arg><option>--add-root</option> <replaceable>path</replaceable></arg> <arg><option>--add-root</option> <replaceable>path</replaceable></arg>
<arg><option>--indirect</option></arg> <arg><option>--indirect</option></arg>
<group choice='opt'> <group choice='opt'>

View file

@ -224,8 +224,8 @@
<command>nix-build</command>. When evaluating Nix expressions, the <command>nix-build</command>. When evaluating Nix expressions, the
expression evaluator will automatically try to call functions that expression evaluator will automatically try to call functions that
it encounters. It can automatically call functions for which every it encounters. It can automatically call functions for which every
argument has a default value (e.g., argument has a <link linkend='ss-functions'>default value</link>
<literal>{<replaceable>argName</replaceable> ? (e.g., <literal>{<replaceable>argName</replaceable> ?
<replaceable>defaultValue</replaceable>}: <replaceable>defaultValue</replaceable>}:
<replaceable>...</replaceable></literal>). With <replaceable>...</replaceable></literal>). With
<option>--arg</option>, you can also call functions that have <option>--arg</option>, you can also call functions that have
@ -257,6 +257,32 @@
</varlistentry> </varlistentry>
<varlistentry xml:id="opt-attr"><term><option>--attr</option> / <option>-A</option>
<replaceable>attrPath</replaceable></term>
<listitem><para>In <command>nix-env</command>,
<command>nix-instantiate</command> and <command>nix-build</command>,
<option>--attr</option> allows you to select an attribute from the
top-level Nix expression being evaluated. The <emphasis>attribute
path</emphasis> <replaceable>attrPath</replaceable> is a sequence of
attribute names separated by dots. For instance, given a top-level
Nix expression <replaceable>e</replaceable>, the attribute path
<literal>xorg.xorgserver</literal> would cause the expression
<literal><replaceable>e</replaceable>.xorg.xorgserver</literal> to
be used. See <link
linkend='refsec-nix-env-install-examples'><command>nix-env
--install</command></link> for some concrete examples.</para>
<para>In addition to attribute names, you can also specify array
indices. For instance, the attribute path
<literal>foo.3.bar</literal> selects the <literal>bar</literal>
attribute of the fourth element of the array in the
<literal>foo</literal> attribute of the top-level
expression.</para></listitem>
</varlistentry>
</variablelist> </variablelist>

View file

@ -428,7 +428,14 @@ lrwxrwxrwx ... 2006-09-29 10:43 result -> /nix/store/632d2b22514d...-hello-2.1.1
$ ./result/bin/hello $ ./result/bin/hello
Hello, world!</screen> Hello, world!</screen>
</para> The <link linkend='opt-attr'><option>-A</option></link> option selects
the <literal>hello</literal> attribute from
<filename>all-packages.nix</filename>. This is faster than using the
symbolic package name specified by the <literal>name</literal>
attribute (which also happens to be <literal>hello</literal>) and is
unambiguous (there can be multiple packages with the symbolic name
<literal>hello</literal>, but there can be only one attribute in a set
named <literal>hello</literal>).</para>
<para><command>nix-build</command> registers the <para><command>nix-build</command> registers the
<filename>./result</filename> symlink as a garbage collection root, so <filename>./result</filename> symlink as a garbage collection root, so
@ -470,8 +477,8 @@ So it is always safe to run multiple instances of Nix in parallel
<para>If you have a system with multiple CPUs, you may want to have <para>If you have a system with multiple CPUs, you may want to have
Nix build different derivations in parallel (insofar as possible). Nix build different derivations in parallel (insofar as possible).
Just pass the option <option linkend='opt-max-jobs'>-j Just pass the option <link linkend='opt-max-jobs'><option>-j
<replaceable>N</replaceable></option>, where <replaceable>N</replaceable></option></link>, where
<replaceable>N</replaceable> is the maximum number of jobs to be run <replaceable>N</replaceable> is the maximum number of jobs to be run
in parallel, or set. Typically this should be the number of in parallel, or set. Typically this should be the number of
CPUs.</para> CPUs.</para>