diff options
| author | Fabian Montero <fabian@posixlycorrect.com> | 2025-08-05 23:22:16 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2025-08-06 13:36:43 -0600 |
| commit | 578b0c59aa75fedf7594d4ce95b2038cc53f53cd (patch) | |
| tree | a4cddec76fc5d6d6a591ea109ad56b1082fbb8d4 /doctrine/lib/mk-module.nix | |
| parent | eecebc6ffa285678f650700d771aace2efcf2176 (diff) | |
add doctrine
Diffstat (limited to 'doctrine/lib/mk-module.nix')
| -rw-r--r-- | doctrine/lib/mk-module.nix | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/doctrine/lib/mk-module.nix b/doctrine/lib/mk-module.nix new file mode 100644 index 0000000..79c24c5 --- /dev/null +++ b/doctrine/lib/mk-module.nix @@ -0,0 +1,38 @@ +{ + name, + hm ? null, + sys ? null, + options ? null, + lib, + config, + pkgs, + doctrine, +}: let + optionsSet = import options { + inherit config lib pkgs cfg name doctrine; + }; + + configSet = import configFiles.${doctrine.namespace} { + inherit config lib pkgs doctrine cfg; + }; + + configFiles = lib.filterAttrs (k: v: v != null) { + inherit sys hm; + }; + + cfg = config.${doctrine.prefix}.${name}; +in { + config = + lib.optionalAttrs (configFiles ? ${doctrine.namespace}) + (lib.mkIf cfg.enable configSet); + + options = lib.optionalAttrs (options + != null + && optionsSet ? ${doctrine.namespace}) { + ${doctrine.prefix}.${name} = + optionsSet.${doctrine.namespace} + // { + enable = lib.mkEnableOption name; + }; + }; +} |
