nyxexprs/flake.nix

61 lines
1.6 KiB
Nix
Raw Normal View History

2023-11-03 07:25:58 +00:00
{
2023-11-03 09:40:30 +00:00
description = "A personal package overlay";
2023-11-03 07:25:58 +00:00
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-parts.url = "github:hercules-ci/flake-parts";
systems.url = "github:nix-systems/default-linux";
2023-11-03 09:40:30 +00:00
flake-compat = {
url = "github:edolstra/flake-compat";
flake = false;
};
2023-11-03 07:25:58 +00:00
};
outputs = {
self,
nixpkgs,
flake-parts,
...
} @ inputs:
flake-parts.lib.mkFlake {inherit inputs self;} {
systems = import inputs.systems;
imports = [flake-parts.flakeModules.easyOverlay];
perSystem = {
system,
config,
pkgs,
lib,
...
}: let
inherit (builtins) concatStringsSep match;
inherit (lib.attrsets) recursiveUpdate;
inherit (lib.filesystem) packagesFromDirectoryRecursive;
inherit (lib.customisation) callPackageWith;
pins = import ./npins;
date = concatStringsSep "-" (match "(.{4})(.{2})(.{2}).*" self.lastModifiedDate);
in {
_module.args.pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
overlayAttrs = config.packages;
packages = packagesFromDirectoryRecursive {
callPackage = callPackageWith (recursiveUpdate pkgs {inherit pins date;});
directory = ./pkgs;
};
2023-11-03 07:25:58 +00:00
formatter = config.packages.alejandra-custom;
devShells = {
default = self.devShells.${system}.npins;
npins = pkgs.mkShellNoCC {
packages = [pkgs.npins];
};
};
2023-11-03 09:40:30 +00:00
};
2023-11-03 07:25:58 +00:00
};
}