nixos/flake/perSystem.nix

68 lines
1.6 KiB
Nix
Raw Normal View History

{
inputs,
rootPath,
...
}: {
imports = [
(rootPath + "/treefmt.nix")
];
perSystem = {
pkgs,
system,
lib,
self',
inputs',
...
}: let
inherit (inputs) nixpkgs;
in {
_module.args.pkgs = import nixpkgs {
inherit system;
config = {
allowUnfree = true;
};
overlays = [(_final: _prev: {inherit lib;})];
};
devShells.default = pkgs.mkShell {
name = "nixos-shell";
packages = with pkgs; [
nixd
nil
typos
typos-lsp
just
nvfetcher
];
};
legacyPackages = let
inputsScope = lib.makeScope pkgs.newScope (self: {
inherit inputs rootPath;
srcs = self.callPackage (rootPath + "/_sources/generated.nix") {};
inherit (inputs'.nixvim.legacyPackages) makeNixvim makeNixvimWithModule;
inherit (self'.legacyPackages) nixvimPlugins;
neovim_git = inputs'.neovim-nightly.packages.default;
});
in
lib.packagesFromDirectoryRecursive {
inherit (inputsScope) callPackage;
directory = rootPath + "/pkgs";
};
packages = let
flattenPkgs = path: value:
if lib.isDerivation value
then {
${lib.concatStringsSep "/" path} = value;
}
else if lib.isAttrs value
then lib.concatMapAttrs (name: flattenPkgs (path ++ [name])) value
else {};
in
flattenPkgs [] self'.legacyPackages;
checks =
lib.concatMapAttrs (name: value: {
"package-${name}" = value;
})
self'.packages;
};
}