Merge pull request #76189 from Ma27/nixos-install-verbosity-level

nixos/nixos-installer: add flags for verbosity and build logs

Changed files
+49 -3
nixos
doc
modules
installer
+37
nixos/doc/manual/man-nixos-install.xml
···
<cmdsynopsis>
<command>nixos-install</command>
<arg>
<arg choice='plain'>
<option>-I</option>
</arg>
···
This command accepts the following options:
</para>
<variablelist>
<varlistentry>
<term>
<option>--root</option>
···
<cmdsynopsis>
<command>nixos-install</command>
<arg>
+
<group choice='req'>
+
<arg choice='plain'>
+
<option>--verbose</option>
+
</arg>
+
<arg choice='plain'>
+
<option>-v</option>
+
</arg>
+
</group>
+
</arg>
+
<arg>
+
<group choice='req'>
+
<arg choice='plain'>
+
<option>--print-build-logs</option>
+
</arg>
+
<arg choice='plain'>
+
<option>-L</option>
+
</arg>
+
</group>
+
</arg>
+
<arg>
<arg choice='plain'>
<option>-I</option>
</arg>
···
This command accepts the following options:
</para>
<variablelist>
+
<varlistentry>
+
<term><option>--verbose</option> / <option>-v</option></term>
+
<listitem>
+
<para>Increases the level of verbosity of diagnostic messages
+
printed on standard error. For each Nix operation, the information
+
printed on standard output is well-defined; any diagnostic
+
information is printed on standard error, never on standard
+
output.</para>
+
<para>Please note that this option may be specified repeatedly.</para>
+
</listitem>
+
</varlistentry>
+
<varlistentry>
+
<term><option>--print-build-logs</option> / <option>-L</option></term>
+
<listitem>
+
<para>Print the full build logs of <command>nix build</command> to stderr.</para>
+
</listitem>
+
</varlistentry>
<varlistentry>
<term>
<option>--root</option>
+12 -3
nixos/modules/installer/tools/nixos-install.sh
···
mountPoint=/mnt
channelPath=
system=
while [ "$#" -gt 0 ]; do
i="$1"; shift 1
···
;;
--debug)
set -x
;;
*)
echo "$0: unknown option \`$i'"
···
outLink="$tmpdir/system"
nix build --out-link "$outLink" --store "$mountPoint" "${extraBuildFlags[@]}" \
--extra-substituters "$sub" \
-
-f '<nixpkgs/nixos>' system -I "nixos-config=$NIXOS_CONFIG"
system=$(readlink -f $outLink)
fi
···
# a progress bar.
nix-env --store "$mountPoint" "${extraBuildFlags[@]}" \
--extra-substituters "$sub" \
-
-p $mountPoint/nix/var/nix/profiles/system --set "$system"
# Copy the NixOS/Nixpkgs sources to the target as the initial contents
# of the NixOS channel.
···
echo "copying channel..."
mkdir -p $mountPoint/nix/var/nix/profiles/per-user/root
nix-env --store "$mountPoint" "${extraBuildFlags[@]}" --extra-substituters "$sub" \
-
-p $mountPoint/nix/var/nix/profiles/per-user/root/channels --set "$channelPath" --quiet
install -m 0700 -d $mountPoint/root/.nix-defexpr
ln -sfn /nix/var/nix/profiles/per-user/root/channels $mountPoint/root/.nix-defexpr/channels
fi
···
mountPoint=/mnt
channelPath=
system=
+
verbosity=()
+
buildLogs=
while [ "$#" -gt 0 ]; do
i="$1"; shift 1
···
;;
--debug)
set -x
+
;;
+
-v*|--verbose)
+
verbosity+=("$i")
+
;;
+
-L|--print-build-logs)
+
buildLogs="$i"
;;
*)
echo "$0: unknown option \`$i'"
···
outLink="$tmpdir/system"
nix build --out-link "$outLink" --store "$mountPoint" "${extraBuildFlags[@]}" \
--extra-substituters "$sub" \
+
-f '<nixpkgs/nixos>' system -I "nixos-config=$NIXOS_CONFIG" ${verbosity[@]} ${buildLogs}
system=$(readlink -f $outLink)
fi
···
# a progress bar.
nix-env --store "$mountPoint" "${extraBuildFlags[@]}" \
--extra-substituters "$sub" \
+
-p $mountPoint/nix/var/nix/profiles/system --set "$system" ${verbosity[@]}
# Copy the NixOS/Nixpkgs sources to the target as the initial contents
# of the NixOS channel.
···
echo "copying channel..."
mkdir -p $mountPoint/nix/var/nix/profiles/per-user/root
nix-env --store "$mountPoint" "${extraBuildFlags[@]}" --extra-substituters "$sub" \
+
-p $mountPoint/nix/var/nix/profiles/per-user/root/channels --set "$channelPath" --quiet \
+
${verbosity[@]}
install -m 0700 -d $mountPoint/root/.nix-defexpr
ln -sfn /nix/var/nix/profiles/per-user/root/channels $mountPoint/root/.nix-defexpr/channels
fi