{ inputs, self, ... }: { perSystem = { pkgs, system, ... }: { devShells.common = pkgs.mkShellNoCC { name = "common"; packages = [ pkgs.nixd ]; shellHook = '' hooksdir="$(git rev-parse --show-toplevel)/root/hooks" if [ ! -d "$hooksdir" ]; then echo "error: hooks directory not found at $hooksdir" exit 1 fi git config set core.hooksPath "$hooksdir" ''; }; devShells.root = let treefmt = pkgs.callPackage ./_treefmt.nix { treefmt-nix = inputs.treefmt-nix; }; in pkgs.mkShellNoCC { name = "root"; inputsFrom = [ self.devShells."${system}".common ]; packages = [ # keep-sorted start (pkgs.python3.withPackages (ps: [ ps.git-filter-repo ])) pkgs.ty treefmt # keep-sorted end ]; shellHook = '' export TREEFMT_WORKING_DIR="$("${pkgs.git}/bin/git" rev-parse --show-toplevel)" ''; }; }; }