1lib:
2lib.makeExtensible (self: {
3 defaultSystems = import ./systems.nix;
4 genSystems = lib.genAttrs self.defaultSystems;
5
6 pkgBin =
7 pkg:
8 if (pkg.meta or { }) ? mainProgram then
9 "${pkg}/bin/${pkg.meta.mainProgram}"
10 else
11 "${pkg}/bin/${pkg.pname}";
12
13 prefixStrings = prefix: strings: lib.forEach strings (string: "${prefix}${string}");
14
15 importFolder =
16 modules:
17 let
18 b = builtins;
19 files = b.readDir modules;
20 fileNames = b.attrNames files;
21 filesToImport = b.map (name: "${modules}/${name}") (
22 b.filter (name: (b.match ".*\.nix" name != null) && (name != "default.nix")) fileNames
23 );
24 in
25 filesToImport;
26})