···
519
+
sub addGeneration {
520
+
my ($name, $nameSuffix, $path, $options, $current) = @_;
520
-
# Add default entries.
521
-
$conf .= "$extraEntries\n" if $extraEntriesBeforeNixOS;
522
+
# Do not search for grand children
523
+
my @links = sort (glob "$path/specialisation/*");
523
-
addEntry("@distroName@ - Default", $defaultConfig, $entryOptions, 1);
525
+
if ($current != 1 && scalar(@links) != 0) {
526
+
$conf .= "submenu \"> $name$nameSuffix\" --class submenu {\n";
525
-
$conf .= "$extraEntries\n" unless $extraEntriesBeforeNixOS;
529
+
addEntry("$name" . (scalar(@links) == 0 ? "" : " - Default") . $nameSuffix, $path, $options, $current);
527
-
# Find all the children of the current default configuration
528
-
# Do not search for grand children
529
-
my @links = sort (glob "$defaultConfig/specialisation/*");
530
-
foreach my $link (@links) {
531
+
# Find all the children of the current default configuration
532
+
# Do not search for grand children
533
+
foreach my $link (@links) {
532
-
my $entryName = "";
535
+
my $entryName = "";
537
+
my $cfgName = readFile("$link/configuration-name");
534
-
my $cfgName = readFile("$link/configuration-name");
539
+
my $date = strftime("%F", localtime(lstat($link)->mtime));
541
+
-e "$link/nixos-version"
542
+
? readFile("$link/nixos-version")
543
+
: basename((glob(dirname(Cwd::abs_path("$link/kernel")) . "/lib/modules/*"))[0]);
536
-
my $date = strftime("%F", localtime(lstat($link)->mtime));
538
-
-e "$link/nixos-version"
539
-
? readFile("$link/nixos-version")
540
-
: basename((glob(dirname(Cwd::abs_path("$link/kernel")) . "/lib/modules/*"))[0]);
546
+
$entryName = $cfgName;
548
+
my $linkname = basename($link);
549
+
$entryName = "($linkname - $date - $version)";
551
+
addEntry("$name - $entryName", $link, "", 1);
543
-
$entryName = $cfgName;
545
-
my $linkname = basename($link);
546
-
$entryName = "($linkname - $date - $version)";
554
+
if ($current != 1 && scalar(@links) != 0) {
548
-
addEntry("@distroName@ - $entryName", $link, "", 1);
559
+
# Add default entries.
560
+
$conf .= "$extraEntries\n" if $extraEntriesBeforeNixOS;
562
+
addGeneration("@distroName@", "", $defaultConfig, $entryOptions, 1);
564
+
$conf .= "$extraEntries\n" unless $extraEntriesBeforeNixOS;
my $grubBootPath = $grubBoot->path;
# extraEntries could refer to @bootRoot@, which we have to substitute
···
? readFile("$link/nixos-version")
: basename((glob(dirname(Cwd::abs_path("$link/kernel")) . "/lib/modules/*"))[0]);
580
-
addEntry("@distroName@ - Configuration " . nrFromGen($link) . " ($date - $version)", $link, $subEntryOptions, 0);
595
+
addGeneration("@distroName@ - Configuration " . nrFromGen($link), " ($date - $version)", $link, $subEntryOptions, 0);