difftreelog
refactor! disable sd-image module from sd-image target
in: trunk
3 files changed
cmds/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 {
lib/default.nixdiffbeforeafterboth1{ 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.${}.system;33 modules = configuredHosts.${}.modules ++ extraModules ++ [34 ({ ... }: {35 nixpkgs.system = system;36 nixpkgs.localSystem.system = system;37 nixpkgs.crossSystem = if system == configuredHosts.${}.system then null else {38 system = configuredHosts.${}.system;39 };40 })41 ];42 specialArgs = {43 inherit fleetLib;44 fleet = fleetLib.hostsToAttrs (host: configuredSystems.${}.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}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.${}.system;33 modules = configuredHosts.${}.modules ++ extraModules ++ [34 ({ ... }: {35 nixpkgs.system = system;36 nixpkgs.localSystem.system = system;37 nixpkgs.crossSystem = if system == configuredHosts.${}.system then null else {38 system = configuredHosts.${}.system;39 };40 })41 ];42 specialArgs = {43 inherit fleetLib;44 fleet = fleetLib.hostsToAttrs (host: configuredSystems.${}.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 ({...}: {58 buildTarget = "toplevel";59 })60 ]);61 sdImage = builtins.mapAttrs (_name: value: value.config.system.build.sdImage) (configuredSystemsWithExtraModules [62 #(nixpkgs + "/nixos/modules/installer/sd-card/sd-image-aarch64-installer.nix")63 ({...}: {64 buildTarget = "sd-image";65 })66 ]);67 installationCd = builtins.mapAttrs (_name: value: value.config.system.build.isoImage) (configuredSystemsWithExtraModules [68 (nixpkgs + "/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix")69 ({ lib, ... }: {70 buildTarget = "installation-cd";71 # Needed for https://github.com/NixOS/nixpkgs/issues/5895972 boot.supportedFilesystems = lib.mkForce [ "btrfs" "reiserfs" "vfat" "f2fs" "xfs" "ntfs" "cifs" ];73 })74 ]);75 };76 });77}nixos/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" ];