Revert "nixos/install-grub: normalize whitespace"
This morally reverts commit 0e8d7f9b3d
.
It made the generated boot script hard to read.
This commit is contained in:
parent
d920e9a8c5
commit
19447850a2
@ -103,10 +103,10 @@ if (stat($bootPath)->dev != stat("/nix/store")->dev) {
|
|||||||
|
|
||||||
# Discover information about the location of the bootPath
|
# Discover information about the location of the bootPath
|
||||||
struct(Fs => {
|
struct(Fs => {
|
||||||
device => '$',
|
device => '$',
|
||||||
type => '$',
|
type => '$',
|
||||||
mount => '$',
|
mount => '$',
|
||||||
});
|
});
|
||||||
sub PathInMount {
|
sub PathInMount {
|
||||||
my ($path, $mount) = @_;
|
my ($path, $mount) = @_;
|
||||||
my @splitMount = split /\//, $mount;
|
my @splitMount = split /\//, $mount;
|
||||||
@ -155,16 +155,16 @@ sub GetFs {
|
|||||||
return $bestFs;
|
return $bestFs;
|
||||||
}
|
}
|
||||||
struct (Grub => {
|
struct (Grub => {
|
||||||
path => '$',
|
path => '$',
|
||||||
search => '$',
|
search => '$',
|
||||||
});
|
});
|
||||||
my $driveid = 1;
|
my $driveid = 1;
|
||||||
sub GrubFs {
|
sub GrubFs {
|
||||||
my ($dir) = @_;
|
my ($dir) = @_;
|
||||||
my $fs = GetFs($dir);
|
my $fs = GetFs($dir);
|
||||||
my $path = substr($dir, length($fs->mount));
|
my $path = substr($dir, length($fs->mount));
|
||||||
if (substr($path, 0, 1) ne "/") {
|
if (substr($path, 0, 1) ne "/") {
|
||||||
$path = "/$path";
|
$path = "/$path";
|
||||||
}
|
}
|
||||||
my $search = "";
|
my $search = "";
|
||||||
|
|
||||||
@ -254,8 +254,8 @@ if ($grubVersion == 1) {
|
|||||||
# $defaultEntry might be "saved", indicating that we want to use the last selected configuration as default.
|
# $defaultEntry might be "saved", indicating that we want to use the last selected configuration as default.
|
||||||
# Incidentally this is already the correct value for the grub 1 config to achieve this behaviour.
|
# Incidentally this is already the correct value for the grub 1 config to achieve this behaviour.
|
||||||
$conf .= "
|
$conf .= "
|
||||||
default $defaultEntry
|
default $defaultEntry
|
||||||
timeout $timeout
|
timeout $timeout
|
||||||
";
|
";
|
||||||
if ($splashImage) {
|
if ($splashImage) {
|
||||||
copy $splashImage, "$bootPath/background.xpm.gz" or die "cannot copy $splashImage to $bootPath: $!\n";
|
copy $splashImage, "$bootPath/background.xpm.gz" or die "cannot copy $splashImage to $bootPath: $!\n";
|
||||||
@ -305,7 +305,7 @@ else {
|
|||||||
|
|
||||||
if ($copyKernels == 0) {
|
if ($copyKernels == 0) {
|
||||||
$conf .= "
|
$conf .= "
|
||||||
" . $grubStore->search;
|
" . $grubStore->search;
|
||||||
}
|
}
|
||||||
# FIXME: should use grub-mkconfig.
|
# FIXME: should use grub-mkconfig.
|
||||||
my $defaultEntryText = $defaultEntry;
|
my $defaultEntryText = $defaultEntry;
|
||||||
@ -313,55 +313,55 @@ else {
|
|||||||
$defaultEntryText = "\"\${saved_entry}\"";
|
$defaultEntryText = "\"\${saved_entry}\"";
|
||||||
}
|
}
|
||||||
$conf .= "
|
$conf .= "
|
||||||
" . $grubBoot->search . "
|
" . $grubBoot->search . "
|
||||||
if [ -s \$prefix/grubenv ]; then
|
if [ -s \$prefix/grubenv ]; then
|
||||||
load_env
|
load_env
|
||||||
fi
|
|
||||||
|
|
||||||
# ‘grub-reboot’ sets a one-time saved entry, which we process here and
|
|
||||||
# then delete.
|
|
||||||
if [ \"\${next_entry}\" ]; then
|
|
||||||
set default=\"\${next_entry}\"
|
|
||||||
set next_entry=
|
|
||||||
save_env next_entry
|
|
||||||
set timeout=1
|
|
||||||
set boot_once=true
|
|
||||||
else
|
|
||||||
set default=$defaultEntryText
|
|
||||||
set timeout=$timeout
|
|
||||||
fi
|
|
||||||
|
|
||||||
function savedefault {
|
|
||||||
if [ -z \"\${boot_once}\"]; then
|
|
||||||
saved_entry=\"\${chosen}\"
|
|
||||||
save_env saved_entry
|
|
||||||
fi
|
fi
|
||||||
}
|
|
||||||
|
|
||||||
# Setup the graphics stack for bios and efi systems
|
# ‘grub-reboot’ sets a one-time saved entry, which we process here and
|
||||||
if [ \"\${grub_platform}\" = \"efi\" ]; then
|
# then delete.
|
||||||
insmod efi_gop
|
if [ \"\${next_entry}\" ]; then
|
||||||
insmod efi_uga
|
set default=\"\${next_entry}\"
|
||||||
else
|
set next_entry=
|
||||||
insmod vbe
|
save_env next_entry
|
||||||
fi
|
set timeout=1
|
||||||
|
set boot_once=true
|
||||||
|
else
|
||||||
|
set default=$defaultEntryText
|
||||||
|
set timeout=$timeout
|
||||||
|
fi
|
||||||
|
|
||||||
|
function savedefault {
|
||||||
|
if [ -z \"\${boot_once}\"]; then
|
||||||
|
saved_entry=\"\${chosen}\"
|
||||||
|
save_env saved_entry
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Setup the graphics stack for bios and efi systems
|
||||||
|
if [ \"\${grub_platform}\" = \"efi\" ]; then
|
||||||
|
insmod efi_gop
|
||||||
|
insmod efi_uga
|
||||||
|
else
|
||||||
|
insmod vbe
|
||||||
|
fi
|
||||||
";
|
";
|
||||||
|
|
||||||
if ($font) {
|
if ($font) {
|
||||||
copy $font, "$bootPath/converted-font.pf2" or die "cannot copy $font to $bootPath: $!\n";
|
copy $font, "$bootPath/converted-font.pf2" or die "cannot copy $font to $bootPath: $!\n";
|
||||||
$conf .= "
|
$conf .= "
|
||||||
insmod font
|
insmod font
|
||||||
if loadfont " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/converted-font.pf2; then
|
if loadfont " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/converted-font.pf2; then
|
||||||
insmod gfxterm
|
insmod gfxterm
|
||||||
if [ \"\${grub_platform}\" = \"efi\" ]; then
|
if [ \"\${grub_platform}\" = \"efi\" ]; then
|
||||||
set gfxmode=$gfxmodeEfi
|
set gfxmode=$gfxmodeEfi
|
||||||
set gfxpayload=$gfxpayloadEfi
|
set gfxpayload=$gfxpayloadEfi
|
||||||
else
|
else
|
||||||
set gfxmode=$gfxmodeBios
|
set gfxmode=$gfxmodeBios
|
||||||
set gfxpayload=$gfxpayloadBios
|
set gfxpayload=$gfxpayloadBios
|
||||||
fi
|
fi
|
||||||
terminal_output gfxterm
|
terminal_output gfxterm
|
||||||
fi
|
fi
|
||||||
";
|
";
|
||||||
}
|
}
|
||||||
if ($splashImage) {
|
if ($splashImage) {
|
||||||
@ -371,21 +371,21 @@ else {
|
|||||||
if ($suffix eq ".jpg") {
|
if ($suffix eq ".jpg") {
|
||||||
$suffix = ".jpeg";
|
$suffix = ".jpeg";
|
||||||
}
|
}
|
||||||
if ($backgroundColor) {
|
if ($backgroundColor) {
|
||||||
$conf .= "
|
$conf .= "
|
||||||
background_color '$backgroundColor'
|
background_color '$backgroundColor'
|
||||||
";
|
";
|
||||||
}
|
}
|
||||||
copy $splashImage, "$bootPath/background$suffix" or die "cannot copy $splashImage to $bootPath: $!\n";
|
copy $splashImage, "$bootPath/background$suffix" or die "cannot copy $splashImage to $bootPath: $!\n";
|
||||||
$conf .= "
|
$conf .= "
|
||||||
insmod " . substr($suffix, 1) . "
|
insmod " . substr($suffix, 1) . "
|
||||||
if background_image --mode '$splashMode' " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/background$suffix; then
|
if background_image --mode '$splashMode' " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/background$suffix; then
|
||||||
set color_normal=white/black
|
set color_normal=white/black
|
||||||
set color_highlight=black/white
|
set color_highlight=black/white
|
||||||
else
|
else
|
||||||
set menu_color_normal=cyan/blue
|
set menu_color_normal=cyan/blue
|
||||||
set menu_color_highlight=white/blue
|
set menu_color_highlight=white/blue
|
||||||
fi
|
fi
|
||||||
";
|
";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -395,21 +395,21 @@ else {
|
|||||||
# Copy theme
|
# Copy theme
|
||||||
rcopy($theme, "$bootPath/theme") or die "cannot copy $theme to $bootPath\n";
|
rcopy($theme, "$bootPath/theme") or die "cannot copy $theme to $bootPath\n";
|
||||||
$conf .= "
|
$conf .= "
|
||||||
# Sets theme.
|
# Sets theme.
|
||||||
set theme=" . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/theme/theme.txt
|
set theme=" . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/theme/theme.txt
|
||||||
export theme
|
export theme
|
||||||
# Load theme fonts, if any
|
# Load theme fonts, if any
|
||||||
";
|
";
|
||||||
|
|
||||||
find( { wanted => sub {
|
find( { wanted => sub {
|
||||||
if ($_ =~ /\.pf2$/i) {
|
if ($_ =~ /\.pf2$/i) {
|
||||||
$font = File::Spec->abs2rel($File::Find::name, $theme);
|
$font = File::Spec->abs2rel($File::Find::name, $theme);
|
||||||
$conf .= "
|
$conf .= "
|
||||||
loadfont " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/theme/$font
|
loadfont " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/theme/$font
|
||||||
";
|
";
|
||||||
}
|
}
|
||||||
}, no_chdir => 1 }, $theme );
|
}, no_chdir => 1 }, $theme );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$conf .= "$extraConfig\n";
|
$conf .= "$extraConfig\n";
|
||||||
@ -448,25 +448,25 @@ sub addEntry {
|
|||||||
|
|
||||||
# Include second initrd with secrets
|
# Include second initrd with secrets
|
||||||
if (-e -x "$path/append-initrd-secrets") {
|
if (-e -x "$path/append-initrd-secrets") {
|
||||||
my $initrdName = basename($initrd);
|
my $initrdName = basename($initrd);
|
||||||
my $initrdSecretsPath = "$bootPath/kernels/$initrdName-secrets";
|
my $initrdSecretsPath = "$bootPath/kernels/$initrdName-secrets";
|
||||||
|
|
||||||
mkpath(dirname($initrdSecretsPath), 0, 0755);
|
mkpath(dirname($initrdSecretsPath), 0, 0755);
|
||||||
my $oldUmask = umask;
|
my $oldUmask = umask;
|
||||||
# Make sure initrd is not world readable (won't work if /boot is FAT)
|
# Make sure initrd is not world readable (won't work if /boot is FAT)
|
||||||
umask 0137;
|
umask 0137;
|
||||||
my $initrdSecretsPathTemp = File::Temp::mktemp("$initrdSecretsPath.XXXXXXXX");
|
my $initrdSecretsPathTemp = File::Temp::mktemp("$initrdSecretsPath.XXXXXXXX");
|
||||||
system("$path/append-initrd-secrets", $initrdSecretsPathTemp) == 0 or die "failed to create initrd secrets: $!\n";
|
system("$path/append-initrd-secrets", $initrdSecretsPathTemp) == 0 or die "failed to create initrd secrets: $!\n";
|
||||||
# Check whether any secrets were actually added
|
# Check whether any secrets were actually added
|
||||||
if (-e $initrdSecretsPathTemp && ! -z _) {
|
if (-e $initrdSecretsPathTemp && ! -z _) {
|
||||||
rename $initrdSecretsPathTemp, $initrdSecretsPath or die "failed to move initrd secrets into place: $!\n";
|
rename $initrdSecretsPathTemp, $initrdSecretsPath or die "failed to move initrd secrets into place: $!\n";
|
||||||
$copied{$initrdSecretsPath} = 1;
|
$copied{$initrdSecretsPath} = 1;
|
||||||
$initrd .= " " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/kernels/$initrdName-secrets";
|
$initrd .= " " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/kernels/$initrdName-secrets";
|
||||||
} else {
|
} else {
|
||||||
unlink $initrdSecretsPathTemp;
|
unlink $initrdSecretsPathTemp;
|
||||||
rmdir dirname($initrdSecretsPathTemp);
|
rmdir dirname($initrdSecretsPathTemp);
|
||||||
}
|
}
|
||||||
umask $oldUmask;
|
umask $oldUmask;
|
||||||
}
|
}
|
||||||
|
|
||||||
my $xen = -e "$path/xen.gz" ? copyToKernelsDir(Cwd::abs_path("$path/xen.gz")) : undef;
|
my $xen = -e "$path/xen.gz" ? copyToKernelsDir(Cwd::abs_path("$path/xen.gz")) : undef;
|
||||||
@ -474,8 +474,8 @@ sub addEntry {
|
|||||||
# FIXME: $confName
|
# FIXME: $confName
|
||||||
|
|
||||||
my $kernelParams =
|
my $kernelParams =
|
||||||
"init=" . Cwd::abs_path("$path/init") . " " .
|
"init=" . Cwd::abs_path("$path/init") . " " .
|
||||||
readFile("$path/kernel-params");
|
readFile("$path/kernel-params");
|
||||||
my $xenParams = $xen && -e "$path/xen-params" ? readFile("$path/xen-params") : "";
|
my $xenParams = $xen && -e "$path/xen-params" ? readFile("$path/xen-params") : "";
|
||||||
|
|
||||||
if ($grubVersion == 1) {
|
if ($grubVersion == 1) {
|
||||||
@ -524,9 +524,9 @@ foreach my $link (@links) {
|
|||||||
|
|
||||||
my $date = strftime("%F", localtime(lstat($link)->mtime));
|
my $date = strftime("%F", localtime(lstat($link)->mtime));
|
||||||
my $version =
|
my $version =
|
||||||
-e "$link/nixos-version"
|
-e "$link/nixos-version"
|
||||||
? readFile("$link/nixos-version")
|
? readFile("$link/nixos-version")
|
||||||
: basename((glob(dirname(Cwd::abs_path("$link/kernel")) . "/lib/modules/*"))[0]);
|
: basename((glob(dirname(Cwd::abs_path("$link/kernel")) . "/lib/modules/*"))[0]);
|
||||||
|
|
||||||
if ($cfgName) {
|
if ($cfgName) {
|
||||||
$entryName = $cfgName;
|
$entryName = $cfgName;
|
||||||
@ -551,8 +551,8 @@ sub addProfile {
|
|||||||
sub nrFromGen { my ($x) = @_; $x =~ /\/\w+-(\d+)-link/; return $1; }
|
sub nrFromGen { my ($x) = @_; $x =~ /\/\w+-(\d+)-link/; return $1; }
|
||||||
|
|
||||||
my @links = sort
|
my @links = sort
|
||||||
{ nrFromGen($b) <=> nrFromGen($a) }
|
{ nrFromGen($b) <=> nrFromGen($a) }
|
||||||
(glob "$profile-*-link");
|
(glob "$profile-*-link");
|
||||||
|
|
||||||
my $curEntry = 0;
|
my $curEntry = 0;
|
||||||
foreach my $link (@links) {
|
foreach my $link (@links) {
|
||||||
@ -563,9 +563,9 @@ sub addProfile {
|
|||||||
}
|
}
|
||||||
my $date = strftime("%F", localtime(lstat($link)->mtime));
|
my $date = strftime("%F", localtime(lstat($link)->mtime));
|
||||||
my $version =
|
my $version =
|
||||||
-e "$link/nixos-version"
|
-e "$link/nixos-version"
|
||||||
? readFile("$link/nixos-version")
|
? readFile("$link/nixos-version")
|
||||||
: basename((glob(dirname(Cwd::abs_path("$link/kernel")) . "/lib/modules/*"))[0]);
|
: basename((glob(dirname(Cwd::abs_path("$link/kernel")) . "/lib/modules/*"))[0]);
|
||||||
addEntry("NixOS - Configuration " . nrFromGen($link) . " ($date - $version)", $link);
|
addEntry("NixOS - Configuration " . nrFromGen($link) . " ($date - $version)", $link);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -587,7 +587,7 @@ $extraPrepareConfig =~ s/\@bootPath\@/$bootPath/g;
|
|||||||
|
|
||||||
# Run extraPrepareConfig in sh
|
# Run extraPrepareConfig in sh
|
||||||
if ($extraPrepareConfig ne "") {
|
if ($extraPrepareConfig ne "") {
|
||||||
system((get("shell"), "-c", $extraPrepareConfig));
|
system((get("shell"), "-c", $extraPrepareConfig));
|
||||||
}
|
}
|
||||||
|
|
||||||
# write the GRUB config.
|
# write the GRUB config.
|
||||||
@ -653,13 +653,13 @@ foreach my $fn (glob "$bootPath/kernels/*") {
|
|||||||
#
|
#
|
||||||
|
|
||||||
struct(GrubState => {
|
struct(GrubState => {
|
||||||
name => '$',
|
name => '$',
|
||||||
version => '$',
|
version => '$',
|
||||||
efi => '$',
|
efi => '$',
|
||||||
devices => '$',
|
devices => '$',
|
||||||
efiMountPoint => '$',
|
efiMountPoint => '$',
|
||||||
extraGrubInstallArgs => '@',
|
extraGrubInstallArgs => '@',
|
||||||
});
|
});
|
||||||
# If you add something to the state file, only add it to the end
|
# If you add something to the state file, only add it to the end
|
||||||
# because it is read line-by-line.
|
# because it is read line-by-line.
|
||||||
sub readGrubState {
|
sub readGrubState {
|
||||||
|
Loading…
Reference in New Issue
Block a user