2021-04-24 01:13:03 +00:00
|
|
|
{ lib }:
|
2019-12-05 05:36:36 +00:00
|
|
|
|
2021-04-24 01:13:03 +00:00
|
|
|
{ self, nixos, inputs, dir, extern, suites, overrides, multiPkgs }:
|
2021-03-20 16:37:03 +00:00
|
|
|
let
|
|
|
|
defaultSystem = "x86_64-linux";
|
2021-02-02 03:26:47 +00:00
|
|
|
|
2021-04-24 15:56:51 +00:00
|
|
|
modules = with lib.modules; {
|
|
|
|
modOverrides = modOverrides { inherit overrides; };
|
|
|
|
hmDefaults = hmDefaults {
|
|
|
|
inherit extern;
|
|
|
|
inherit (self) homeModules;
|
|
|
|
userSuites = suites.user;
|
2021-03-17 22:41:54 +00:00
|
|
|
};
|
2021-04-24 15:56:51 +00:00
|
|
|
globalDefaults = globalDefaults {
|
|
|
|
inherit self nixos inputs multiPkgs;
|
|
|
|
};
|
|
|
|
cachix = cachix { inherit self; };
|
|
|
|
flakeModules = flakeModules { inherit self extern; };
|
2021-03-17 22:41:54 +00:00
|
|
|
};
|
2021-03-14 07:10:51 +00:00
|
|
|
|
2021-03-23 14:36:23 +00:00
|
|
|
specialArgs = extern.specialArgs // { suites = suites.system; };
|
2021-03-14 07:10:51 +00:00
|
|
|
|
|
|
|
mkHostConfig = hostName:
|
|
|
|
let
|
|
|
|
local = {
|
|
|
|
require = [
|
2021-03-20 16:37:03 +00:00
|
|
|
"${dir}/${hostName}.nix"
|
2021-03-14 07:10:51 +00:00
|
|
|
];
|
|
|
|
|
|
|
|
networking = { inherit hostName; };
|
2021-03-16 19:50:38 +00:00
|
|
|
|
|
|
|
_module.args = {
|
2021-04-24 01:13:03 +00:00
|
|
|
self = self;
|
2021-03-16 21:22:38 +00:00
|
|
|
hosts = builtins.mapAttrs (_: host: host.config)
|
|
|
|
(removeAttrs hosts [ hostName ]);
|
2021-03-16 19:50:38 +00:00
|
|
|
};
|
2021-04-19 04:48:19 +00:00
|
|
|
|
2021-03-17 22:41:54 +00:00
|
|
|
lib = { inherit specialArgs; };
|
|
|
|
lib.testModule = {
|
|
|
|
imports = builtins.attrValues modules;
|
|
|
|
};
|
2021-04-19 04:48:19 +00:00
|
|
|
|
2021-03-17 22:41:54 +00:00
|
|
|
};
|
2021-03-14 07:10:51 +00:00
|
|
|
in
|
2021-04-18 01:35:05 +00:00
|
|
|
lib.os.devosSystem {
|
2021-04-24 01:13:03 +00:00
|
|
|
inherit self nixos inputs specialArgs;
|
2021-03-16 02:04:28 +00:00
|
|
|
system = defaultSystem;
|
2021-04-19 04:48:19 +00:00
|
|
|
modules = modules // { inherit local; };
|
2019-12-14 04:30:43 +00:00
|
|
|
};
|
2019-12-17 23:03:44 +00:00
|
|
|
|
2021-04-18 01:35:05 +00:00
|
|
|
hosts = lib.os.recImport
|
2021-03-14 07:10:51 +00:00
|
|
|
{
|
2021-03-20 16:37:03 +00:00
|
|
|
inherit dir;
|
2021-03-14 07:10:51 +00:00
|
|
|
_import = mkHostConfig;
|
|
|
|
};
|
2020-07-31 04:17:28 +00:00
|
|
|
in
|
|
|
|
hosts
|