Files
nixpkgs-typo/flake.nix

40 lines
998 B
Nix

{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs";
};
outputs = { self, nixpkgs }:
let
system = "x86_64-linux";
lib = nixpkgs.lib;
pkgsDir = ./pkgs;
entries = if builtins.pathExists pkgsDir then builtins.readDir pkgsDir else [];
# builtins.readDir returns a list of names; when pkgs are present as
# committed directories use them directly. (If you use git submodules,
# their contents are not available during flake evaluation unless
# vendored.)
pkgNames = entries;
loadPkg = name:
let
path = pkgsDir + "/${name}";
flake = builtins.getFlake (toString path);
in
# since all are guaranteed identical shape:
flake.packages.${system}.default;
# build final package set
packages = lib.listToAttrs (builtins.map (name: { inherit name; value = loadPkg name; }) pkgNames);
in {
packages.${system} = packages;
overlays.default = final: prev: {
myPkgs = packages;
};
};
}