initrd-network: call postCommands only if network is up

Changed files
+9 -4
nixos
modules
system
+9 -4
nixos/modules/system/boot/initrd-network.nix
···
copy_bin_and_libs ${pkgs.mkinitcpio-nfs-utils}/bin/ipconfig
'';
-
boot.initrd.preLVMCommands =
# Search for interface definitions in command line.
-
mkBefore ''
for o in $(cat /proc/cmdline); do
case $o in
ip=*)
···
# Acquire a DHCP lease.
echo "acquiring IP address via DHCP..."
-
udhcpc --quit --now --script ${udhcpcScript}
fi
''
-
+ cfg.postCommands;
};
···
copy_bin_and_libs ${pkgs.mkinitcpio-nfs-utils}/bin/ipconfig
'';
+
boot.initrd.preLVMCommands = mkBefore (
# Search for interface definitions in command line.
+
''
for o in $(cat /proc/cmdline); do
case $o in
ip=*)
···
# Acquire a DHCP lease.
echo "acquiring IP address via DHCP..."
+
udhcpc --quit --now --script ${udhcpcScript} && hasNetwork=1
fi
''
+
+ ''
+
if [ -n "$hasNetwork" ]; then
+
echo "networking is up!"
+
${cfg.postCommands}
+
fi
+
'');
};