jetperch/flake.nix
Jonas Rabenstein e3b0136650 initial commit
2025-09-30 12:07:41 +02:00

31 lines
1.1 KiB
Nix

{
description = "Jetperch tools";
inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
inputs."nixpkgs-24.11".url = "github:nixos/nixpkgs/nixos-24.11";
outputs = { self, nixpkgs, ... }@inputs: let
lib = nixpkgs.lib;
scan = root: pkg: let
path = ./. + "/${root}";
entries = lib.optionalAttrs (builtins.pathExists path) (builtins.readDir path);
in lib.attrsets.foldlAttrs (acc: name: value: acc // lib.optionalAttrs (builtins.pathExists ("${./.}/${root}/${name}/default.nix")) {
${name} = pkg name (import "${./.}/${root}/${name}/default.nix");
}) {} entries;
overlay = final: prev: let
all = packages final;
python3 = prev.python3.override {
self = python3;
packageOverrides = pself: psuper: {
watchdog = psuper.watchdog;
};
};
in { inherit python3; } // all;
packages = pkgs: scan "package" (name: pkg: (pkgs.extend overlay).callPackage pkg { jetperch = self; inherit name; });
in {
packages = builtins.mapAttrs (_: packages) nixpkgs.legacyPackages;
};
}