27 lines
639 B
Nix
27 lines
639 B
Nix
{ lib, ... }:
|
|
{
|
|
nixpkgs.overlays = [
|
|
(
|
|
final: prev:
|
|
builtins.listToAttrs (
|
|
map (pkg: {
|
|
name = pkg;
|
|
value =
|
|
let
|
|
argsPath = ./${pkg}/args.nix;
|
|
in
|
|
final.callPackage ./${pkg} (
|
|
if (builtins.pathExists argsPath) then (import argsPath final) else { }
|
|
);
|
|
}) (builtins.attrNames (builtins.readDir ./.))
|
|
)
|
|
)
|
|
];
|
|
|
|
imports = lib.pipe ./. [
|
|
builtins.readDir
|
|
(lib.filterAttrs (n: ty: ty == "directory" && builtins.pathExists ./${n}/nixos.nix))
|
|
(lib.mapAttrsToList (n: _: ./${n}/nixos.nix))
|
|
];
|
|
}
|