From 9e45f6feac633fdc41eaaaa1ad65d77bda252472 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Mon, 10 Jun 2019 20:27:04 +0200 Subject: [PATCH] nixos-generate-config: don't generate swapDevices for *files* Up until now, the output has been the same for swap devices and swap files: { device = "/var/swapfile"; } Whereas for swap *files* it's easier to manage them declaratively in configuration.nix: { device = "/var/swapfile"; size = 8192; } (NixOS will create the swapfile, and later resize it, if the size attribute is changed.) With the assumption that swap files are specified in configuration.nix, it's silly to output them to hardware-configuration.nix. --- .../installer/tools/nixos-generate-config.pl | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/nixos/modules/installer/tools/nixos-generate-config.pl b/nixos/modules/installer/tools/nixos-generate-config.pl index 0ccdac30d91..9a1157d9501 100644 --- a/nixos/modules/installer/tools/nixos-generate-config.pl +++ b/nixos/modules/installer/tools/nixos-generate-config.pl @@ -324,10 +324,19 @@ my @swapDevices; if (@swaps) { shift @swaps; foreach my $swap (@swaps) { - $swap =~ /^(\S+)\s/; - next unless -e $1; - my $dev = findStableDevPath $1; - push @swapDevices, "{ device = \"$dev\"; }"; + my @fields = split ' ', $swap; + my $swapFilename = $fields[0]; + my $swapType = $fields[1]; + next unless -e $swapFilename; + my $dev = findStableDevPath $swapFilename; + if ($swapType =~ "partition") { + push @swapDevices, "{ device = \"$dev\"; }"; + } elsif ($swapType =~ "file") { + # swap *files* are more likely specified in configuration.nix, so + # ignore them here. + } else { + die "Unsupported swap type: $swapType\n"; + } } }