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

difftreelog

source

lib/default.nix1.8 KiBsourcehistory
1{2  flake-utils,3  fleetPkgsForPkgs,4}: {5  fleetConfiguration = {6    # TODO: Provide by fleet, instead of requesting user to provide it.7    # This is not good that user needs to provide it, as it becomes a flake data, and fleet arbitrarily rewriting it8    # always dirnets the flake. Instead, fleetConfiguration should return function, parameters of which should be filled9    # by fleet itself, which is possible since fleet moving to nix repl execution.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}