nixos-generate-config: Fix unspecified root

Changed files
+7 -3
nixos
modules
installer
+7 -3
nixos/modules/installer/tools/nixos-generate-config.pl
···
if (-e "/etc/nixos-generate-config.conf") {
my $cfg = new Config::IniFiles -file => "/etc/nixos-generate-config.conf";
$outDir = $cfg->val("Defaults", "Directory") // $outDir;
-
$rootDir = $cfg->val("Defaults", "RootDirectory") // $rootDir;
+
if (defined $cfg->val("Defaults", "RootDirectory")) {
+
$rootDir = $cfg->val("Defaults", "RootDirectory");
+
$rootDir =~ s/\/*$//; # remove trailing slashes
+
$rootDir = File::Spec->rel2abs($rootDir); # resolve absolute path
+
}
$kernel = $cfg->val("Defaults", "Kernel") // $kernel;
}
···
$rootDir = $ARGV[$n];
die "$0: ‘--root’ requires an argument\n" unless defined $rootDir;
die "$0: no need to specify `/` with `--root`, it is the default\n" if $rootDir eq "/";
+
$rootDir =~ s/\/*$//; # remove trailing slashes
+
$rootDir = File::Spec->rel2abs($rootDir); # resolve absolute path
}
elsif ($arg eq "--force") {
$force = 1;
···
}
}
-
$rootDir =~ s/\/*$//; # remove trailing slashes
-
$rootDir = File::Spec->rel2abs($rootDir); # resolve absolute path
die "$0: invalid kernel: '$kernel'" unless $kernel eq "lts" || $kernel eq "latest";
my @attrs = ();