/ shell.nix
shell.nix
 1  {
 2    pkgs ? (
 3      let
 4        inherit (builtins) fetchTree fromJSON readFile;
 5        inherit ((fromJSON (readFile ./flake.lock)).nodes) nixpkgs gomod2nix;
 6      in
 7        import (fetchTree nixpkgs.locked) {
 8          overlays = [
 9            (import "${fetchTree gomod2nix.locked}/overlay.nix")
10          ];
11        }
12    ),
13    mkGoEnv ? pkgs.mkGoEnv,
14    gomod2nix ? pkgs.gomod2nix,
15  }: let
16    goEnv = mkGoEnv {pwd = ./.;};
17  in
18    pkgs.mkShell {
19      packages = [
20        goEnv
21        gomod2nix
22        pkgs.go_1_22
23        pkgs.pre-commit
24      ];
25    }