diff --git a/overlays/default.nix b/overlays/default.nix index 3665afa..2b9cfc1 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -4,13 +4,35 @@ let inherit (flake) inputs; inherit (inputs) self; packages = self + /packages; + in -self: super: { +self: super: +let + # Auto-import all packages from the packages directory + # TODO: Upstream this to nixos0-unified? + entries = builtins.readDir packages; + + # Convert directory entries to package definitions + makePackage = name: type: + let + # Remove .nix extension for package name + pkgName = + if type == "regular" && builtins.match ".*\\.nix$" name != null + then builtins.replaceStrings [ ".nix" ] [ "" ] name + else name; + in + { + name = pkgName; + value = self.callPackage (packages + "/${name}") { }; + }; + + # Import everything in packages directory + packageOverlays = builtins.listToAttrs + (builtins.attrValues (builtins.mapAttrs makePackage entries)); + +in +packageOverlays // { + # External overlays nuenv = (inputs.nuenv.overlays.nuenv self super).nuenv; - fuckport = self.callPackage "${packages}/fuckport.nix" { }; - sshuttle-via = self.callPackage "${packages}/sshuttle-via.nix" { }; - ci = self.callPackage "${packages}/ci" { }; - touchpr = self.callPackage "${packages}/touchpr" { }; # omnix = inputs.omnix.packages.${self.system}.default; - git-merge-and-delete = self.callPackage "${packages}/git-merge-and-delete.nix" { }; }