{ 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; # Misc Hooks commitizen.enable = true; }; }; in { devShell = pkgs.mkShell { name = "dgsi.dev"; packages = [ pkgs.jq pkgs.dart-sass # Python dependencies (pkgs.python3.withPackages ( ps: [ ps.daphne ps.django ps.django-allauth ps.django-compressor ps.django-debug-toolbar ps.django-types ps.loadcredential ] ++ (builtins.map (p: ps.callPackage ./pkgs/${p} { }) [ "django-browser-reload" "django-bulma-forms" "django-sass-processor" "django-sass-processor-dart-sass" "pykanidm" ]) )) ] ++ check.enabledPackages; env = { CREDENTIALS_DIRECTORY = builtins.toString ./.credentials; DGSI_DEBUG = "true"; DGSI_STATIC_ROOT = builtins.toString ./.static; DGSI_KANIDM_CLIENT = "dgsi_test"; }; shellHook = '' ${check.shellHook} ''; }; }