47 lines
1.3 KiB
Nix
47 lines
1.3 KiB
Nix
{
|
|
description = "Image builder for RaspberryPi";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:nixos/nixpkgs/release-21.05";
|
|
nixos-hardware.url = "github:nixos/nixos-hardware";
|
|
};
|
|
|
|
outputs = { self, nixpkgs, nixos-hardware }: {
|
|
|
|
nixosModules = {
|
|
defaults = import ./modules/defaults.nix;
|
|
pi = import ./modules/pi.nix;
|
|
pi4 = import ./modules/pi4.nix;
|
|
minetest = import ./modules/minetest.nix;
|
|
};
|
|
|
|
nixosConfigurations = {
|
|
pi4-minetest = nixpkgs.lib.nixosSystem {
|
|
system = "aarch64-linux";
|
|
modules = with self.nixosModules; [
|
|
"${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix"
|
|
nixos-hardware.nixosModules.raspberry-pi-4
|
|
defaults pi pi4 minetest
|
|
];
|
|
};
|
|
};
|
|
|
|
packages =
|
|
let
|
|
systems =
|
|
map (nixos:
|
|
nixos.config.system.build.toplevel.system
|
|
) (builtins.attrValues self.nixosConfigurations);
|
|
in builtins.foldl' (result: system: result // {
|
|
"${system}" = nixpkgs.lib.mapAttrs (_: nixos:
|
|
nixos.config.system.build.sdImage
|
|
) (
|
|
nixpkgs.lib.filterAttrs (_: nixos:
|
|
nixos.config.system.build.toplevel.system == system
|
|
) self.nixosConfigurations
|
|
);
|
|
}) {} systems;
|
|
|
|
};
|
|
}
|