nixos/nixos-installer: add flags for verbosity and build logs
When installing a fresh NixOS system it occasionally happens that you encounter issues that are rather hard to track down since `nixos-install(8)` doesn't provide any debugging flags. This patch adds `-L` to force `nix build` to display the build-log on stderr and `-v` to increase the log-level of Nix.
This commit is contained in:
parent
63fd250642
commit
1fc248afcc
|
@ -14,6 +14,26 @@
|
|||
<refsynopsisdiv>
|
||||
<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>
|
||||
|
@ -134,6 +154,23 @@
|
|||
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>
|
||||
|
|
|
@ -14,6 +14,8 @@ extraBuildFlags=()
|
|||
mountPoint=/mnt
|
||||
channelPath=
|
||||
system=
|
||||
verbosity=()
|
||||
buildLogs=
|
||||
|
||||
while [ "$#" -gt 0 ]; do
|
||||
i="$1"; shift 1
|
||||
|
@ -55,6 +57,12 @@ while [ "$#" -gt 0 ]; do
|
|||
--debug)
|
||||
set -x
|
||||
;;
|
||||
-v*|--verbose)
|
||||
verbosity+=("$i")
|
||||
;;
|
||||
-L|--print-build-logs)
|
||||
buildLogs="$i"
|
||||
;;
|
||||
*)
|
||||
echo "$0: unknown option \`$i'"
|
||||
exit 1
|
||||
|
@ -94,7 +102,7 @@ if [[ -z $system ]]; then
|
|||
outLink="$tmpdir/system"
|
||||
nix build --out-link "$outLink" --store "$mountPoint" "${extraBuildFlags[@]}" \
|
||||
--extra-substituters "$sub" \
|
||||
-f '<nixpkgs/nixos>' system -I "nixos-config=$NIXOS_CONFIG"
|
||||
-f '<nixpkgs/nixos>' system -I "nixos-config=$NIXOS_CONFIG" ${verbosity[@]} ${buildLogs}
|
||||
system=$(readlink -f $outLink)
|
||||
fi
|
||||
|
||||
|
@ -103,7 +111,7 @@ fi
|
|||
# a progress bar.
|
||||
nix-env --store "$mountPoint" "${extraBuildFlags[@]}" \
|
||||
--extra-substituters "$sub" \
|
||||
-p $mountPoint/nix/var/nix/profiles/system --set "$system"
|
||||
-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.
|
||||
|
@ -115,7 +123,8 @@ if [[ -z $noChannelCopy ]]; then
|
|||
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
|
||||
-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
|
||||
|
|
Loading…
Reference in a new issue