54 lines
961 B
Nix

{
self,
pkgs,
poetryConfig,
checks,
system,
...
}:
let
# construct the shell provided by pre-commit for running hooks
pre-commit = pkgs.mkShell {
inherit (checks.pre-commit-check) shellHook;
buildInputs = checks.pre-commit-check.enabledPackages;
};
# constructs a custom shell with commonly used utilities
rad-dev = pkgs.mkShell {
packages = with pkgs; [
deadnix
pre-commit
treefmt
statix
nixfmt-rfc-style
ruff
];
};
# constructs the application in-place
flupdt = pkgs.mkShell { inputsFrom = [ self.packages.${system}.flupdt ]; };
# pull in python/poetry dependencies
poetry = pkgs.mkShell {
packages = [
pkgs.poetry
pkgs.poetry2nix.cli
];
};
poetry2nixshell = pkgs.poetry2nix.mkPoetryEnv poetryConfig;
in
{
default = pkgs.mkShell {
inputsFrom = [
pre-commit
rad-dev
flupdt
poetry
poetry2nixshell
];
};
}