mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-12 04:35:41 +03:00
nixos/image.modules: siplify type for better UX
Usage before: ``` image.modules.my-format = [ ( { config, pkgs, ... }: { imports = [ ./my-other-module.nix ]; foo = "bar"; }; ) ] ``` Usage after: ``` image.modules.my-format = { config, pkgs, ... }: { imports = [ ./my-other-module.nix ]; foo = "bar"; }; ``` If the user wants to pass a list of modules only: ``` image.modules.my-format.imports = [ ./module1.nix ./module2.nix ] ``` cc @phaer @zimbatm
This commit is contained in:
parent
66ca9869c7
commit
6e6be76601
1 changed files with 41 additions and 48 deletions
|
@ -9,59 +9,52 @@ let
|
|||
inherit (lib) types;
|
||||
|
||||
imageModules = {
|
||||
amazon = [ ../../maintainers/scripts/ec2/amazon-image.nix ];
|
||||
azure = [ ../virtualisation/azure-image.nix ];
|
||||
digital-ocean = [ ../virtualisation/digital-ocean-image.nix ];
|
||||
google-compute = [ ../virtualisation/google-compute-image.nix ];
|
||||
hyperv = [ ../virtualisation/hyperv-image.nix ];
|
||||
linode = [ ../virtualisation/linode-image.nix ];
|
||||
lxc = [ ../virtualisation/lxc-container.nix ];
|
||||
lxc-metadata = [ ../virtualisation/lxc-image-metadata.nix ];
|
||||
oci = [ ../virtualisation/oci-image.nix ];
|
||||
openstack = [ ../../maintainers/scripts/openstack/openstack-image.nix ];
|
||||
openstack-zfs = [ ../../maintainers/scripts/openstack/openstack-image-zfs.nix ];
|
||||
proxmox = [ ../virtualisation/proxmox-image.nix ];
|
||||
proxmox-lxc = [ ../virtualisation/proxmox-lxc.nix ];
|
||||
qemu-efi = [ ../virtualisation/disk-image.nix ];
|
||||
qemu = [
|
||||
../virtualisation/disk-image.nix
|
||||
{
|
||||
image.efiSupport = false;
|
||||
}
|
||||
];
|
||||
raw-efi = [
|
||||
../virtualisation/disk-image.nix
|
||||
{
|
||||
image.format = "raw";
|
||||
}
|
||||
];
|
||||
raw = [
|
||||
../virtualisation/disk-image.nix
|
||||
{
|
||||
image.format = "raw";
|
||||
image.efiSupport = false;
|
||||
}
|
||||
];
|
||||
kubevirt = [ ../virtualisation/kubevirt.nix ];
|
||||
vagrant-virtualbox = [ ../virtualisation/vagrant-virtualbox-image.nix ];
|
||||
virtualbox = [ ../virtualisation/virtualbox-image.nix ];
|
||||
vmware = [ ../virtualisation/vmware-image.nix ];
|
||||
iso = [ ../installer/cd-dvd/iso-image.nix ];
|
||||
iso-installer = [ ../installer/cd-dvd/installation-cd-base.nix ];
|
||||
sd-card = [
|
||||
(
|
||||
amazon = ../../maintainers/scripts/ec2/amazon-image.nix;
|
||||
azure = ../virtualisation/azure-image.nix;
|
||||
digital-ocean = ../virtualisation/digital-ocean-image.nix;
|
||||
google-compute = ../virtualisation/google-compute-image.nix;
|
||||
hyperv = ../virtualisation/hyperv-image.nix;
|
||||
linode = ../virtualisation/linode-image.nix;
|
||||
lxc = ../virtualisation/lxc-container.nix;
|
||||
lxc-metadata = ../virtualisation/lxc-image-metadata.nix;
|
||||
oci = ../virtualisation/oci-image.nix;
|
||||
openstack = ../../maintainers/scripts/openstack/openstack-image.nix;
|
||||
openstack-zfs = ../../maintainers/scripts/openstack/openstack-image-zfs.nix;
|
||||
proxmox = ../virtualisation/proxmox-image.nix;
|
||||
proxmox-lxc = ../virtualisation/proxmox-lxc.nix;
|
||||
qemu-efi = ../virtualisation/disk-image.nix;
|
||||
qemu = {
|
||||
imports = [ ../virtualisation/disk-image.nix ];
|
||||
image.efiSupport = false;
|
||||
};
|
||||
raw-efi = {
|
||||
imports = [ ../virtualisation/disk-image.nix ];
|
||||
image.format = "raw";
|
||||
};
|
||||
raw = {
|
||||
imports = [ ../virtualisation/disk-image.nix ];
|
||||
image.format = "raw";
|
||||
image.efiSupport = false;
|
||||
};
|
||||
kubevirt = ../virtualisation/kubevirt.nix;
|
||||
vagrant-virtualbox = ../virtualisation/vagrant-virtualbox-image.nix;
|
||||
virtualbox = ../virtualisation/virtualbox-image.nix;
|
||||
vmware = ../virtualisation/vmware-image.nix;
|
||||
iso = ../installer/cd-dvd/iso-image.nix;
|
||||
iso-installer = ../installer/cd-dvd/installation-cd-base.nix;
|
||||
sd-card = {
|
||||
imports =
|
||||
let
|
||||
module = ../. + "/installer/sd-card/sd-image-${pkgs.targetPlatform.linuxArch}.nix";
|
||||
in
|
||||
if builtins.pathExists module then module else throw "The module ${module} does not exist."
|
||||
)
|
||||
];
|
||||
kexec = [ ../installer/netboot/netboot-minimal.nix ];
|
||||
if builtins.pathExists module then [ module ] else throw "The module ${module} does not exist.";
|
||||
};
|
||||
kexec = ../installer/netboot/netboot-minimal.nix;
|
||||
};
|
||||
imageConfigs = lib.mapAttrs (
|
||||
name: modules:
|
||||
name: module:
|
||||
extendModules {
|
||||
inherit modules;
|
||||
modules = [ module ];
|
||||
}
|
||||
) config.image.modules;
|
||||
in
|
||||
|
@ -77,7 +70,7 @@ in
|
|||
};
|
||||
};
|
||||
image.modules = lib.mkOption {
|
||||
type = types.attrsOf (types.listOf types.deferredModule);
|
||||
type = types.attrsOf types.deferredModule;
|
||||
description = ''
|
||||
image-specific NixOS Modules used for `system.build.images`.
|
||||
'';
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue