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:
Dominik Xaver Hörl 2021-02-21 09:09:28 +01:00
parent d920e9a8c5
commit 19447850a2

View File

@ -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 {