gestiojeux/default.nix

86 lines
1.6 KiB
Nix
Raw Normal View History

2024-05-12 13:51:21 +02:00
{
sources ? import ./npins,
pkgs ? import sources.nixpkgs { },
}:
let
nix-pkgs = import sources.nix-pkgs { inherit pkgs; };
check = (import sources.git-hooks).run {
src = ./.;
hooks = {
# 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;
};
};
2024-05-12 13:51:21 +02:00
python3 = pkgs.python3.override {
packageOverrides = final: _: {
2024-05-12 13:51:21 +02:00
inherit (nix-pkgs)
django-autoslug
loadcredential
markdown-icons
python-cas
2024-05-12 13:51:21 +02:00
;
authens = final.callPackage ./nix/authens { };
2024-05-12 13:51:21 +02:00
};
};
in
{
devShell = pkgs.mkShell {
name = "gestiojeux.dev";
packages = check.enabledPackages ++ [
2024-05-12 13:51:21 +02:00
(python3.withPackages (ps: [
ps.django
ps.django-types
2024-05-12 13:51:21 +02:00
ps.django-autoslug
ps.loadcredential
ps.django-cleanup
ps.django-haystack
ps.django-markdownx
ps.django-tables2
ps.pillow
ps.whoosh
2024-07-03 01:16:17 +02:00
ps.markdown-icons
ps.authens
2024-05-12 13:51:21 +02:00
ps.qrcode
ps.pillow
2024-05-12 13:51:21 +02:00
# Django haystack is drunk
ps.setuptools
]))
];
env = {
DJANGO_SETTINGS_MODULE = "gestiojeux.settings";
CREDENTIALS_DIRECTORY = builtins.toString ./.credentials;
GESTIOJEUX_DEBUG = builtins.toJSON true;
2024-05-12 13:51:21 +02:00
};
shellHook = ''
${check.shellHook}
'';
2024-05-12 13:51:21 +02:00
};
}