From 18929d198268775853b4b73c2fbfa998b8236099 Mon Sep 17 00:00:00 2001 From: Michael Smith Date: Tue, 20 Aug 2024 00:14:54 +0200 Subject: [PATCH] Add nixos-generators for making a raw installer image --- flake.lock | 37 +++++++++++++++++++++++++++++++++++++ flake.nix | 20 ++++++++++++++++++++ 2 files changed, 57 insertions(+) diff --git a/flake.lock b/flake.lock index 1cd801e..2f90c5e 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,41 @@ { "nodes": { + "nixlib": { + "locked": { + "lastModified": 1723942470, + "narHash": "sha256-QdSArN0xKESEOTcv+3kE6yu4B4WX9lupZ4+Htx3RXGg=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "531a2e8416a6d8200a53eddfbdb8f2c8dc4a1251", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "nixos-generators": { + "inputs": { + "nixlib": "nixlib", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1724028932, + "narHash": "sha256-U11ZiQPrpIBdv7oS23bNdX9GCxe/hPf/ARr64P2Wj1Y=", + "owner": "nix-community", + "repo": "nixos-generators", + "rev": "5fd22603892e4ec5ac6085058ed658243143aacd", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixos-generators", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1720954236, @@ -18,6 +54,7 @@ }, "root": { "inputs": { + "nixos-generators": "nixos-generators", "nixpkgs": "nixpkgs" } } diff --git a/flake.nix b/flake.nix index 8b7c736..c781e04 100644 --- a/flake.nix +++ b/flake.nix @@ -3,11 +3,16 @@ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05"; + nixos-generators = { + url = "github:nix-community/nixos-generators"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = { self, nixpkgs, + nixos-generators, } @ inputs: let supportedSystems = [ "aarch64-darwin" @@ -69,6 +74,21 @@ ''; installer-iso = inputs.self.nixosConfigurations.installer.config.system.build.isoImage; + + installer-image = nixos-generators.nixosGenerate { + system = system; + specialArgs = { + pkgs = pkgs; + }; + modules = [ + # Pin nixpkgs to the flake input, so that the packages installed + # come from the flake inputs.nixpkgs.url. + ({ ... }: { nix.registry.nixpkgs.flake = nixpkgs; }) + # Apply the rest of the config. + ./machines/installer-image + ]; + format = "raw-efi"; + }; }); apps = forAllSystems (system: {