diff --git a/doctrine/default.nix b/doctrine/default.nix index b4c72b8..0d50d49 100644 --- a/doctrine/default.nix +++ b/doctrine/default.nix @@ -1,12 +1,16 @@ { + lib ? pkgs.lib, pkgs, - namespace, + prefix ? "trivium", + namespace ? null, }: let - doctrine = { - lib = import ./lib {inherit lib pkgs doctrine;}; - prefix = "trivium"; - inherit namespace; - }; - inherit (pkgs) lib; + doctrine = + { + lib = import ./lib {inherit lib pkgs doctrine;}; + inherit namespace prefix; + } + // lib.optionalAttrs (pkgs != null) { + inherit pkgs; + }; in doctrine diff --git a/doctrine/lib/default.nix b/doctrine/lib/default.nix index f189e21..e2d84b8 100644 --- a/doctrine/lib/default.nix +++ b/doctrine/lib/default.nix @@ -13,8 +13,11 @@ closeLib = close {inherit lib;}; closeFull = close {inherit lib pkgs doctrine;}; -in { - inherit close; - importAll = closeLib ./import-all.nix; - mkModule = closeFull ./mk-module.nix; -} +in + { + inherit close; + importAll = closeLib ./import-all.nix; + } + // lib.optionalAttrs (doctrine.namespace != null) { + mkModule = closeFull ./mk-module.nix; + } diff --git a/doctrine/lib/mk-module.nix b/doctrine/lib/mk-module.nix index f76ccfe..ffbe6bc 100644 --- a/doctrine/lib/mk-module.nix +++ b/doctrine/lib/mk-module.nix @@ -11,14 +11,17 @@ requires ? [], prefix ? doctrine.prefix, namespace ? doctrine.namespace, + passthru ? {}, }: let - optionsSet = import options { - inherit config lib pkgs cfg name doctrine; - }; + optionsSet = import options (passthru + // { + inherit config lib pkgs cfg name doctrine; + }); - configSet = import configFiles.${namespace} { - inherit config lib pkgs doctrine cfg; - }; + configSet = import configFiles.${namespace} (passthru + // { + inherit config lib pkgs doctrine cfg; + }); configFiles = lib.filterAttrs (k: v: v != null) { inherit sys hm;