git.delta.rocks / jrsonnet / refs/commits / d58560c49134

difftreelog

refactor! disable sd-image module from sd-image target

Yaroslav Bolyukin2023-05-01parent: #15ef984.patch.diff
in: trunk

3 files changed

modifiedcmds/fleet/src/cmds/build_systems.rsdiffbeforeafterboth
--- a/cmds/fleet/src/cmds/build_systems.rs
+++ b/cmds/fleet/src/cmds/build_systems.rs
@@ -133,7 +133,14 @@
 			)
 			.args(&config.nix_args);
 
-		nix_build.run_nix().await?;
+		nix_build.run_nix().await.map_err(|e| {
+			if action.build_attr() == "sdImage" {
+				info!("sd-image build failed");
+				info!("Make sure you have imported modulesPath/installer/sd-card/sd-image-<arch>[-installer].nix (For installer, you may want to check config)");
+				info!("This module was automatically imported before, but was removed for better customization")
+			}
+			e
+		})?;
 		let built = std::fs::canonicalize(built)?;
 
 		match action {
modifiedlib/default.nixdiffbeforeafterboth
before · lib/default.nix
1{ flake-utils }: {2  fleetConfiguration = { data, nixpkgs, hosts, ... }@allConfig:3    let4      hostNames = nixpkgs.lib.attrNames hosts;5      config = builtins.removeAttrs allConfig [ "nixpkgs" "data" ];6      fleetLib = import ./fleetLib.nix {7        inherit nixpkgs hostNames;8      };9    in10    nixpkgs.lib.genAttrs flake-utils.lib.defaultSystems (system:11      let12        root = nixpkgs.lib.evalModules {13          modules = (import ../modules/fleet/_modules.nix) ++ [ config data ];14          specialArgs = {15            inherit nixpkgs fleetLib;16          };17        };18        failedAssertions = map (x: x.message) (nixpkgs.lib.filter (x: !x.assertion) root.config.assertions);19        rootAssertWarn =20          if failedAssertions != [ ]21          then throw "Failed assertions:\n${nixpkgs.lib.concatStringsSep "\n" (map (x: "- ${x}") failedAssertions)}"22          else nixpkgs.lib.showWarnings root.config.warnings root;23        configuredHosts = rootAssertWarn.config.hosts;24        configuredSecrets = rootAssertWarn.config.secrets;25        configuredSystems = configuredSystemsWithExtraModules [ ];26        configuredSystemsWithExtraModules = extraModules: nixpkgs.lib.listToAttrs (27          map28            (29              name: {30                inherit name;31                value = nixpkgs.lib.nixosSystem {32                  system = configuredHosts.${name}.system;33                  modules = configuredHosts.${name}.modules ++ extraModules ++ [34                    ({ ... }: {35                      nixpkgs.system = system;36                      nixpkgs.localSystem.system = system;37                      nixpkgs.crossSystem = if system == configuredHosts.${name}.system then null else {38                        system = configuredHosts.${name}.system;39                      };40                    })41                  ];42                  specialArgs = {43                    inherit fleetLib;44                    fleet = fleetLib.hostsToAttrs (host: configuredSystems.${host}.config);45                  };46                };47              }48            )49            (builtins.attrNames rootAssertWarn.config.hosts)50        );51      in52      rec {53        inherit configuredHosts configuredSecrets configuredSystems;54        configUnchecked = root.config;55        buildSystems = {56          toplevel = builtins.mapAttrs (_name: value: value.config.system.build.toplevel) (configuredSystemsWithExtraModules [ ]);57          sdImage = builtins.mapAttrs (_name: value: value.config.system.build.sdImage) (configuredSystemsWithExtraModules [58            (nixpkgs + "/nixos/modules/installer/sd-card/sd-image-aarch64-installer.nix")59          ]);60          installationCd = builtins.mapAttrs (_name: value: value.config.system.build.isoImage) (configuredSystemsWithExtraModules [61            (nixpkgs + "/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix")62            ({ lib, ... }: {63              # Needed for https://github.com/NixOS/nixpkgs/issues/5895964              boot.supportedFilesystems = lib.mkForce [ "btrfs" "reiserfs" "vfat" "f2fs" "xfs" "ntfs" "cifs" ];65            })66          ]);67        };68      });69}
modifiednixos/meta.nixdiffbeforeafterboth
--- a/nixos/meta.nix
+++ b/nixos/meta.nix
@@ -24,6 +24,9 @@
       };
       description = "Network definition of host";
     };
+    buildTarget = mkOption {
+      type = enum ["toplevel" "sd-image" "installation-cd"];
+    };
   };
   config = {
     tags = [ "all" ];