2025-07-11 21:04:42 +08:00
|
|
|
{
|
|
|
|
|
inputs,
|
|
|
|
|
rootPath,
|
|
|
|
|
...
|
2025-07-13 06:04:55 +08:00
|
|
|
}:
|
|
|
|
|
{
|
2025-06-09 16:14:57 +08:00
|
|
|
imports = [
|
|
|
|
|
(rootPath + "/treefmt.nix")
|
|
|
|
|
];
|
2025-07-13 06:04:55 +08:00
|
|
|
perSystem =
|
|
|
|
|
{
|
|
|
|
|
pkgs,
|
|
|
|
|
system,
|
|
|
|
|
lib,
|
|
|
|
|
self',
|
|
|
|
|
inputs',
|
|
|
|
|
...
|
|
|
|
|
}:
|
|
|
|
|
let
|
|
|
|
|
inherit (inputs) nixpkgs;
|
2025-07-12 23:57:53 +08:00
|
|
|
in
|
2025-07-13 06:04:55 +08:00
|
|
|
{
|
|
|
|
|
_module.args.pkgs = import nixpkgs {
|
2025-10-18 23:10:53 +08:00
|
|
|
localSystem = { inherit system; };
|
2025-07-13 06:04:55 +08:00
|
|
|
config = {
|
|
|
|
|
allowUnfree = true;
|
|
|
|
|
};
|
|
|
|
|
overlays = [ (_final: _prev: { inherit lib; }) ];
|
2025-07-12 23:57:53 +08:00
|
|
|
};
|
2025-07-13 06:04:55 +08:00
|
|
|
devShells.default = pkgs.mkShell {
|
|
|
|
|
name = "nixos-shell";
|
|
|
|
|
packages = with pkgs; [
|
|
|
|
|
nixd
|
|
|
|
|
nil
|
|
|
|
|
typos
|
|
|
|
|
typos-lsp
|
|
|
|
|
just
|
|
|
|
|
nvfetcher
|
2025-10-18 23:10:53 +08:00
|
|
|
nixfmt-rfc-style
|
2025-07-13 06:04:55 +08:00
|
|
|
];
|
|
|
|
|
};
|
|
|
|
|
legacyPackages =
|
|
|
|
|
let
|
|
|
|
|
inputsScope = lib.makeScope pkgs.newScope (self: {
|
|
|
|
|
inherit inputs rootPath;
|
|
|
|
|
srcs = self.callPackage (rootPath + "/_sources/generated.nix") { };
|
|
|
|
|
inherit (inputs'.nixvim.legacyPackages) makeNixvim makeNixvimWithModule;
|
2025-10-04 11:28:55 +08:00
|
|
|
inherit (self'.legacyPackages) nixvimPlugins editor-runtime;
|
2025-07-13 06:04:55 +08:00
|
|
|
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: {
|
2025-07-12 23:57:53 +08:00
|
|
|
"package-${name}" = value;
|
2025-07-13 06:04:55 +08:00
|
|
|
}) self'.packages;
|
|
|
|
|
};
|
2025-06-09 16:14:57 +08:00
|
|
|
}
|