1{flake-utils}: {2 fleetConfiguration = {3 4 5 6 7 data,8 nixpkgs,9 overlays ? [],10 hosts,11 fleetModules,12 nixosModules ? [],13 extraFleetLib ? {},14 }: let15 hostNames = nixpkgs.lib.attrNames hosts;16 fleetLib =17 (import ./fleetLib.nix {18 inherit nixpkgs hostNames;19 })20 // extraFleetLib;21 in let22 root = nixpkgs.lib.evalModules {23 modules =24 (import ../modules/fleet/_modules.nix)25 ++ [26 data27 ({...}: {28 inherit nixosModules hosts overlays;29 })30 ]31 ++ fleetModules;32 specialArgs = {33 inherit nixpkgs fleetLib;34 };35 };36 failedAssertions = map (x: x.message) (nixpkgs.lib.filter (x: !x.assertion) root.config.assertions);37 checkedRoot =38 if failedAssertions != []39 then throw "Fleet failed assertions:\n${nixpkgs.lib.concatStringsSep "\n" (map (x: "- ${x}") failedAssertions)}"40 else nixpkgs.lib.showWarnings root.config.warnings root;41 withData = {42 root,43 data,44 }: {45 config = root.config;46 };47 defaultData = withData {48 inherit data;49 root = checkedRoot;50 };51 uncheckedData = withData {inherit data root;};52 in {53 inherit nixpkgs overlays;54 inherit (defaultData) config;55 unchecked = {56 inherit (uncheckedData) config;57 };58 };59}
1{2 flake-utils,3 fleetPkgsForPkgs,4}: {5 fleetConfiguration = {6 7 8 9 10 data,11 nixpkgs,12 overlays ? [],13 hosts,14 fleetModules,15 nixosModules ? [],16 extraFleetLib ? {},17 }: let18 hostNames = nixpkgs.lib.attrNames hosts;19 fleetLib =20 (import ./fleetLib.nix {21 inherit nixpkgs hostNames;22 })23 // extraFleetLib;24 in let25 root = nixpkgs.lib.evalModules {26 modules =27 (import ../modules/fleet/_modules.nix)28 ++ [29 data30 ({...}: {31 inherit nixosModules hosts;32 overlays = [(final: prev: (fleetPkgsForPkgs final))] ++ overlays;33 })34 ]35 ++ fleetModules;36 specialArgs = {37 inherit nixpkgs fleetLib;38 };39 };40 failedAssertions = map (x: x.message) (nixpkgs.lib.filter (x: !x.assertion) root.config.assertions);41 checkedRoot =42 if failedAssertions != []43 then throw "Fleet failed assertions:\n${nixpkgs.lib.concatStringsSep "\n" (map (x: "- ${x}") failedAssertions)}"44 else nixpkgs.lib.showWarnings root.config.warnings root;45 withData = {46 root,47 data,48 }: {49 config = root.config;50 };51 defaultData = withData {52 inherit data;53 root = checkedRoot;54 };55 uncheckedData = withData {inherit data root;};56 in {57 inherit nixpkgs overlays;58 inherit (defaultData) config;59 unchecked = {60 inherit (uncheckedData) config;61 };62 };63}