67 lines
1.5 KiB
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;
|
|
}
|
|
);
|
|
};
|
|
}
|