haipkgs/flake.nix

52 lines
1.4 KiB
Nix

{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
systems.url = "github:nix-systems/default";
hjem = {
url = "github:feel-co/hjem";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = {
self,
nixpkgs,
systems,
hjem,
...
}: let
forAllSystems = function:
nixpkgs.lib.genAttrs (import systems) (system: function nixpkgs.legacyPackages.${system});
loadPackages = pkgs: let
packageNames = builtins.attrNames (builtins.readDir ./pkgs);
in
nixpkgs.lib.genAttrs packageNames (name: pkgs.callPackage (./pkgs + "/${name}") {});
loadModules = dir: let
moduleNames = builtins.attrNames (builtins.readDir dir);
in
nixpkgs.lib.genAttrs moduleNames (name: import (dir + "/${name}"));
loadOverlays = let
overlayNames = builtins.attrNames (builtins.readDir ./overlays);
in
nixpkgs.lib.genAttrs overlayNames (name: import (./overlays + "/${name}"));
in {
packages = forAllSystems loadPackages;
nixosModules = loadModules ./modules/nixos;
hjemModules = loadModules ./modules/hjem;
overlays = loadOverlays;
};
nixConfig = {
extra-substituters = ["https://blahai.cachix.org" "https://nix-community.cachix.org/"];
extra-trusted-public-keys = [
"blahai.cachix.org-1:7Pg+JDWpcIogeN3HesRnOb4dl6FSwl/ZHC+QUmb65So="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
];
};
}