nix: re-export personal packages in flake outputs

This commit is contained in:
raf 2025-06-11 12:04:36 +03:00
commit 665c979a1e
Signed by: NotAShelf
GPG key ID: 29D95B64378DB4BF
2 changed files with 65 additions and 9 deletions

BIN
flake.lock generated

Binary file not shown.

View file

@ -1,15 +1,43 @@
{ {
description = "A personal package overlay"; # «https://github.com/notashelf/nyxexprs»
description = "Personal package overlay for commonly used derivations";
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-parts.url = "github:hercules-ci/flake-parts";
systems.url = "github:nix-systems/default-linux"; systems.url = "github:nix-systems/default-linux";
flake-parts = {
url = "github:hercules-ci/flake-parts";
inputs.nixpkgs-lib.follows = "nixpkgs";
};
flake-compat = { flake-compat = {
url = "github:edolstra/flake-compat"; url = "github:edolstra/flake-compat";
flake = false; flake = false;
}; };
# Rest of my packages will be constructed from previous flakes
watt = {
url = "github:NotAShelf/watt";
inputs.nixpkgs.follows = "nixpkgs";
};
flint = {
url = "github:NotAShelf/flint";
inputs.nixpkgs.follows = "nixpkgs";
};
inquisitor = {
url = "github:NotAShelf/inquisitor";
inputs.nixpkgs.follows = "nixpkgs";
};
wiremix = {
url = "github:tsowell/wiremix";
inputs = {
nixpkgs.follows = "nixpkgs";
systems.follows = "systems";
};
};
}; };
outputs = { outputs = {
@ -24,12 +52,13 @@
perSystem = { perSystem = {
system, system,
inputs',
config, config,
pkgs, pkgs,
lib, lib,
... ...
}: let }: let
inherit (builtins) concatStringsSep match; inherit (builtins) concatStringsSep match listToAttrs;
inherit (lib.attrsets) recursiveUpdate; inherit (lib.attrsets) recursiveUpdate;
inherit (lib.filesystem) packagesFromDirectoryRecursive; inherit (lib.filesystem) packagesFromDirectoryRecursive;
inherit (lib.customisation) callPackageWith; inherit (lib.customisation) callPackageWith;
@ -43,18 +72,45 @@
}; };
overlayAttrs = config.packages; overlayAttrs = config.packages;
packages = packagesFromDirectoryRecursive { packages = let
callPackage = callPackageWith (recursiveUpdate pkgs {inherit pins date;}); base = packagesFromDirectoryRecursive {
directory = ./pkgs; callPackage = callPackageWith (recursiveUpdate pkgs {inherit pins date;});
}; directory = ./pkgs;
};
# Borrowed diniamo/niqspkgs, with love <3
# (and without useless pipe operators)
fromInputs = [
# My packages
"watt"
"flint"
"inquisitor"
# 3rd party packages
"wiremix"
];
mappedPkgs = listToAttrs (map (input: {
name = input;
value = inputs'.${input}.packages.default;
})
fromInputs);
in
base // mappedPkgs;
formatter = config.packages.alejandra-custom; formatter = config.packages.alejandra-custom;
devShells = { devShells = {
default = self.devShells.${system}.npins; default = pkgs.mkShellNoCC {
npins = pkgs.mkShellNoCC { name = "nyxexprs";
packages = [pkgs.npins]; packages = [pkgs.npins];
}; };
}; };
}; };
}; };
# This is so that you don't have to compile Alejandra.
nixConfig = {
extra-substituters = ["https://nyx.cachix.org"];
extra-trusted-public-keys = ["nyx.cachix.org-1:xH6G0MO9PrpeGe7mHBtj1WbNzmnXr7jId2mCiq6hipE"];
};
} }