diff --git a/flakeModule.nix b/flakeModule.nix index 1ee749a..8f87321 100644 --- a/flakeModule.nix +++ b/flakeModule.nix @@ -14,7 +14,7 @@ ... }: let cfg = config.sloth; - inherit (cfg) lib; + sLib = (cfg).lib; packageModule = types.submodule { options.modules = mkOption { @@ -26,7 +26,7 @@ buildPackage = { name, value }: { inherit name; - value = (lib.evalSlothModules {inherit (value) modules;}).neovimPackage; + value = sLib.mkNeovimPkg {inherit (value) modules;}; }; packagesList = map buildPackage (attrsToList cfg.packages); in { diff --git a/lib/lib.nix b/lib/lib.nix index 19a692a..31b3634 100644 --- a/lib/lib.nix +++ b/lib/lib.nix @@ -1,6 +1,6 @@ {pkgs, ...}: let inherit (pkgs) lib; - inherit (lib) concatMap evalModules literalExample mkEnableOption mkOption mkPackageOption optional types; + inherit (lib) concatMap evalModules fix literalExample mkEnableOption mkOption mkPackageOption optional types; initModule = types.submodule { options = { @@ -234,15 +234,24 @@ }; }; }; -in { - evalSlothModules = { - modules ? [], - specialArgs ? {}, - }: let - moduleConfig = evalModules { - specialArgs = specialArgs // {inherit pkgs;}; - modules = modules ++ [defaultModule]; - }; - in - moduleConfig.config; -} +in + fix (sLib: { + inherit defaultModule; + + evalSlothModules = { + modules ? [], + specialArgs ? {}, + }: let + moduleConfig = evalModules { + specialArgs = specialArgs // {inherit pkgs;}; + modules = modules ++ [sLib.defaultModule]; + }; + in + moduleConfig.config; + + mkNeovimPkg = { + modules ? [], + specialArgs ? {}, + }: + (sLib.evalSlothModules {inherit modules specialArgs;}).neovimPackage; + })