From bb335050fd91446c0ab5a8319619e825495e37f4 Mon Sep 17 00:00:00 2001 From: Daniel Barlow Date: Sat, 2 Dec 2023 15:31:55 +0000 Subject: [PATCH] derivation that produces /boot --- modules/outputs.nix | 1 + modules/outputs/extlinux.nix | 37 ++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 modules/outputs/extlinux.nix diff --git a/modules/outputs.nix b/modules/outputs.nix index 2c69484..df2343d 100644 --- a/modules/outputs.nix +++ b/modules/outputs.nix @@ -12,6 +12,7 @@ in imports = [ ./squashfs.nix ./outputs/vmroot.nix + ./outputs/extlinux.nix ]; options = { system.outputs = { diff --git a/modules/outputs/extlinux.nix b/modules/outputs/extlinux.nix new file mode 100644 index 0000000..c8db8be --- /dev/null +++ b/modules/outputs/extlinux.nix @@ -0,0 +1,37 @@ +{ + config +, pkgs +, lib +, ... +}: +let + inherit (lib) mkIf mkEnableOption mkOption types concatStringsSep; + cfg = config.boot.loader.extlinux; + o = config.system.outputs; + cmdline = concatStringsSep " " config.boot.commandLine; +in { + options.system.outputs.extlinux = mkOption { + type = types.package; + # description = ""; + }; + options.boot.loader.extlinux.enable = mkEnableOption "extlinux"; + + config = { # mkIf cfg.enable { + system.outputs.extlinux = pkgs.runCommand "extlinux" {} '' + mkdir $out + cd $out + ln -s ${o.dtb} dtb + ln -s ${o.initramfs} initramfs + gzip -9f < ${o.kernel} > kernel.gz + cat > extlinux.conf << _EOF + menu title Liminix + timeout 100 + label Liminix + kernel kernel.gz + initrd initramfs + fdt dtb + append ${cmdline} + _EOF + ''; + }; +}