diff options
author | Jörg Thalheim <Mic92@users.noreply.github.com> | 2021-01-23 16:18:22 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-23 16:18:22 +0000 |
commit | 17da58accadc931534ed0d8a2b81097db3f41e7f (patch) | |
tree | 900d6f6f17dab63553c3b4a0b0091ab03a909e92 /nixos/modules/system/boot | |
parent | 75666aad62b1b66909b9656a9619e08cb6919543 (diff) | |
parent | 771ba47d564b734ac7644c19032b19a95a9e840e (diff) | |
download | nixpkgs-17da58accadc931534ed0d8a2b81097db3f41e7f.tar nixpkgs-17da58accadc931534ed0d8a2b81097db3f41e7f.tar.gz nixpkgs-17da58accadc931534ed0d8a2b81097db3f41e7f.tar.bz2 nixpkgs-17da58accadc931534ed0d8a2b81097db3f41e7f.tar.lz nixpkgs-17da58accadc931534ed0d8a2b81097db3f41e7f.tar.xz nixpkgs-17da58accadc931534ed0d8a2b81097db3f41e7f.tar.zst nixpkgs-17da58accadc931534ed0d8a2b81097db3f41e7f.zip |
Merge pull request #108242 from GovanifY/grub-additional
boot.loader.grub: add extraInstallCommands option
Diffstat (limited to 'nixos/modules/system/boot')
-rw-r--r-- | nixos/modules/system/boot/loader/grub/grub.nix | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/nixos/modules/system/boot/loader/grub/grub.nix b/nixos/modules/system/boot/loader/grub/grub.nix index df5dfaa554b..289c2b19986 100644 --- a/nixos/modules/system/boot/loader/grub/grub.nix +++ b/nixos/modules/system/boot/loader/grub/grub.nix @@ -327,6 +327,26 @@ in ''; }; + extraInstallCommands = mkOption { + default = ""; + example = literalExample '' + # the example below generates detached signatures that GRUB can verify + # https://www.gnu.org/software/grub/manual/grub/grub.html#Using-digital-signatures + ''${pkgs.findutils}/bin/find /boot -not -path "/boot/efi/*" -type f -name '*.sig' -delete + old_gpg_home=$GNUPGHOME + export GNUPGHOME="$(mktemp -d)" + ''${pkgs.gnupg}/bin/gpg --import ''${priv_key} > /dev/null 2>&1 + ''${pkgs.findutils}/bin/find /boot -not -path "/boot/efi/*" -type f -exec ''${pkgs.gnupg}/bin/gpg --detach-sign "{}" \; > /dev/null 2>&1 + rm -rf $GNUPGHOME + export GNUPGHOME=$old_gpg_home + ''; + type = types.lines; + description = '' + Additional shell commands inserted in the bootloader installer + script after generating menu entries. + ''; + }; + extraPerEntryConfig = mkOption { default = ""; example = "root (hd0)"; @@ -715,7 +735,7 @@ in ${optionalString cfg.enableCryptodisk "export GRUB_ENABLE_CRYPTODISK=y"} '' + flip concatMapStrings cfg.mirroredBoots (args: '' ${pkgs.perl}/bin/perl ${install-grub-pl} ${grubConfig args} $@ - '')); + '') + cfg.extraInstallCommands); system.build.grub = grub; |