Files
ccpkgs/flake.nix

37 lines
1.1 KiB
Nix

{
description = "Compute Canada Flake Packages (Overlay)";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/release-23.05";
inputs.flake-utils.url = "github:numtide/flake-utils";
outputs = { self, nixpkgs, flake-utils }: {
overlays = {
default = final: prev: import ./pkgs/all-packages.nix final prev;
};
} // (flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs {
inherit system;
config.allowAliases = false;
overlays = [ self.overlays.default ];
};
inherit (pkgs) lib;
overlayAttributes = lib.pipe (import ./. pkgs pkgs) [
builtins.attrNames
(lib.partition (n: lib.isDerivation pkgs.${n}))
];
attributesToAttrset = attributes: lib.pipe attributes [
(map (n: lib.nameValuePair n pkgs.${n}))
lib.listToAttrs
];
in {
lib = attributesToAttrset overlayAttributes.wrong;
packages = pkgs.lib.optionalAttrs
(system == "x86_64-linux" ) (attributesToAttrset overlayAttributes.right);
hydraJobs = pkgs.lib.optionalAttrs
(system == "x86_64-linux" ) self.packages;
}
));
}