casexporter/provisioning/shell.nix
2025-12-18 15:51:01 +01:00

71 lines
1.4 KiB
Nix

{
sources ? import ../npins,
pkgs ? import sources.nixpkgs { },
}:
let
check = (import sources.git-hooks).run {
src = ./.;
hooks = {
# JS hooks
# eslint.enable = true;
# Python hooks
ruff.enable = true;
black.enable = true;
isort.enable = true;
# Nix Hooks
statix.enable = true;
deadnix.enable = true;
rfc101 = {
enable = true;
name = "RFC-101 formatting";
entry = "${pkgs.lib.getExe pkgs.nixfmt-rfc-style}";
files = "\\.nix$";
};
# Misc Hooks
commitizen.enable = true;
};
};
python = pkgs.python3.override {
packageOverrides = self: _: {
python-cas = self.callPackage ./python-cas { };
django-allauth-cas = self.callPackage ./django-allauth-cas { };
django-browser-reload = self.callPackage ./django-browser-reload { };
};
};
in
pkgs.mkShell {
buildInputs = [
pkgs.jq
pkgs.dart-sass
(python.withPackages (
ps:
[
ps.django
ps.gunicorn
ps.django-browser-reload
ps.django-types
ps.django-allauth-cas
ps.django-allauth
#Debug
ps.black
ps.isort
]
++ ps.django-allauth.optional-dependencies.socialaccount
))
pkgs.djlint
]
++ check.enabledPackages;
shellHook = ''
${check.shellHook}
'';
}