nixpkgs-extension/flake.nix

67 lines
1.5 KiB
Nix

{
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
outputs =
{ self, nixpkgs, ... }:
let
lib = nixpkgs.lib;
systems = [
"x86_64-linux"
# "aarch64-linux"
];
forAllSystems = f: lib.genAttrs systems (system: f system);
overlay = import ./default.nix;
pkgsPrev = system: import nixpkgs { inherit system; };
pkgsFinal =
system:
import nixpkgs {
inherit system;
overlays = [ overlay ];
};
flakePackages =
system:
import ./pkgs {
pkgs = pkgsFinal system;
prev = pkgsPrev system;
lib = (pkgsPrev system).lib;
forFlakeOutputs = true;
};
flakePythonPackages =
system:
import ./pkgs {
pkgs = pkgsFinal system;
prev = pkgsPrev system;
lib = (pkgsPrev system).lib;
forPythonScope = true;
};
mkDefault =
p:
let
directNames = lib.filter (name: lib.isDerivation p.${name}) (lib.attrNames p);
in
if p ? raganything then p.raganything else p.${builtins.head directNames};
in
{
overlays.default = overlay;
packages = forAllSystems (
system:
let
p = flakePackages system;
in
p // { default = mkDefault p; }
);
legacyPackages = forAllSystems (
system:
{
python3Packages = flakePythonPackages system;
}
);
};
}