Files
nixpkgs-typo/flake.nix

39 lines
1.0 KiB
Nix
Raw Normal View History

2026-04-12 17:19:04 +02:00
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs";
};
2026-04-12 17:19:04 +02:00
outputs = { self, nixpkgs }:
let
system = "x86_64-linux";
lib = nixpkgs.lib;
pkgsDir = ./pkgs;
# `builtins.readDir` returns an attribute set of entries. Use an empty
# attrset when missing so the type stays consistent during eval.
entries = if builtins.pathExists pkgsDir then builtins.readDir pkgsDir else {};
2026-04-12 17:19:04 +02:00
# only subdirectories: filter the entries attribute-set and get the names
pkgNames = lib.attrNames (lib.filterAttrs (_: t: t == "directory") entries);
2026-04-12 17:19:04 +02:00
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);
2026-04-12 17:19:04 +02:00
in {
packages.${system} = packages;
overlays.default = final: prev: {
myPkgs = packages;
};
};
}