Personal Monorepo ❄️
at main 37 lines 798 B view raw
1{ 2 config, 3 lib, 4 flakelight, 5 moduleArgs, 6 ... 7}: let 8 inherit (lib) mkOption mkIf mkMerge; 9 inherit (lib.types) lazyAttrsOf; 10 inherit (flakelight.types) module nullable optCallWith; 11in { 12 options = { 13 devenvModule = mkOption { 14 type = nullable module; 15 default = null; 16 description = "Default devenv module to export"; 17 }; 18 19 devenvModules = mkOption { 20 type = optCallWith moduleArgs (lazyAttrsOf module); 21 default = {}; 22 description = "Devenv modules to export"; 23 }; 24 }; 25 26 config = mkMerge [ 27 (mkIf (config.devenvModule != null) { 28 devenvModules.default = config.devenvModule; 29 }) 30 31 (mkIf (config.devenvModules != {}) { 32 outputs = {inherit (config) devenvModules;}; 33 }) 34 35 {nixDirPathAttrs = ["devenvModules"];} 36 ]; 37}