diff --git a/flake.lock b/flake.lock index e516cd4b..3a701807 100644 --- a/flake.lock +++ b/flake.lock @@ -79,7 +79,7 @@ "utils": "utils_2" }, "locked": { - "narHash": "sha256-jG9Y7IiZkB+xKuqsVr2wr0zfV2TNziIIRmv0MHqzis0=", + "narHash": "sha256-/htTDxf3/n8lcL7Gnoi3+uamuY/KnlSMWDQ76dzQpac=", "path": "./lib", "type": "path" }, diff --git a/flake.nix b/flake.nix index 41a83a9f..a7811996 100644 --- a/flake.nix +++ b/flake.nix @@ -79,6 +79,10 @@ }; }; + homeConfigurations = devos.lib.mkHomeConfigurations self.nixosConfigurations; + + deploy.nodes = devos.lib.mkDeployNodes self.nixosConfigurations { }; + #defaultTemplate = self.templates.flk; templates.flk.path = ./.; templates.flk.description = "flk template"; diff --git a/lib/flake.nix b/lib/flake.nix index fba02a87..5fd79366 100644 --- a/lib/flake.nix +++ b/lib/flake.nix @@ -19,18 +19,19 @@ strings = import ./strings.nix { lib = combinedLib; }; modules = import ./modules.nix { lib = combinedLib; }; importers = import ./importers.nix { lib = combinedLib; }; - generators = import ./generators.nix { lib = combinedLib; }; + + generators = import ./generators.nix { + lib = combinedLib; + inherit deploy; + }; mkFlake = { - __functor = import ./mkFlake { - lib = combinedLib; - inherit deploy; - }; + __functor = import ./mkFlake { lib = combinedLib; }; evalArgs = import ./mkFlake/evalArgs.nix { lib = combinedLib; }; }; pkgs-lib = import ./pkgs-lib { - lib = nixpkgs.lib // self; + lib = combinedLib; inherit deploy devshell; }; diff --git a/lib/generators.nix b/lib/generators.nix index 86f9d4db..f403fbc2 100644 --- a/lib/generators.nix +++ b/lib/generators.nix @@ -1,4 +1,4 @@ -{ lib }: +{ lib, deploy }: { mkHomeConfigurations = nixosConfigurations: with lib; @@ -12,7 +12,7 @@ in foldl recursiveUpdate { } (attrValues hmConfigs); - mkDeployNodes = + mkDeployNodes = hosts: extraConfig: /** Synopsis: mkNodes _nixosConfigurations_ @@ -20,14 +20,18 @@ where _nixosConfigurations_ are `nodes`. **/ - deploy: lib.mapAttrs (_: config: { - hostname = config.config.networking.hostName; + lib.mapAttrs + (_: config: lib.recursiveUpdate + { + hostname = config.config.networking.hostName; - profiles.system = { - user = "root"; - path = deploy.lib.x86_64-linux.activate.nixos config; - }; - }); + profiles.system = { + user = "root"; + path = deploy.lib.x86_64-linux.activate.nixos config; + }; + } + extraConfig) + hosts; mkSuites = { suites, profiles }: let diff --git a/lib/mkFlake/default.nix b/lib/mkFlake/default.nix index 3fecd615..e2d0b73c 100644 --- a/lib/mkFlake/default.nix +++ b/lib/mkFlake/default.nix @@ -1,4 +1,4 @@ -{ lib, deploy }: +{ lib }: let inherit (builtins) mapAttrs attrNames attrValues head isFunction; in @@ -71,9 +71,6 @@ lib.systemFlake (lib.mergeAny nixosModules = lib.exporter.modulesFromList cfg.nixos.hostDefaults.modules; homeModules = lib.exporter.modulesFromList cfg.home.modules; - homeConfigurations = lib.mkHomeConfigurations self.nixosConfigurations; - - deploy.nodes = lib.mkDeployNodes deploy self.nixosConfigurations; overlays = lib.exporter.overlaysFromChannelsExporter { # since we can't detect overlays owned by self diff --git a/lib/modules.nix b/lib/modules.nix index 6deb7f39..d5641962 100644 --- a/lib/modules.nix +++ b/lib/modules.nix @@ -1,14 +1,17 @@ { lib }: { - hmDefaults = { suites, modules }: { - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; + hmDefaults = { suites, modules }: + { options, ... }: { + config = lib.optionalAttrs (options ? home-manager) { + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; - extraSpecialArgs = { inherit suites; }; - sharedModules = modules; + extraSpecialArgs = { inherit suites; }; + sharedModules = modules; + }; + }; }; - }; globalDefaults = { self, inputs }: let