shell.nix

 1let
 2  pkgs = import (import ./.npins).nixpkgs { };
 3  ci.shell = (import ./ci { inherit pkgs; }).shell;
 4in
 5pkgs.mkShellNoCC {
 6  # because we're using mkShellNoCC, we should disable CGO in order to avoid
 7  # errors when running various go tools (e.g. go generate and go build), which
 8  # use cgo by default.
 9  #
10  # we're able to do this because git-bug does not have any direct or indirect
11  # dependencies on cgo.
12  CGO_ENABLED = 0;
13
14  # this ensures that nix commands use the pinned nixpkgs.
15  NIX_PATH = builtins.concatStringsSep ":" [ "nixpkgs=${builtins.storePath pkgs.path}" ];
16
17  NPINS_DIRECTORY = toString ./.npins;
18
19  inputsFrom = [ ci.shell ];
20
21  nativeBuildInputs = with pkgs; [
22    nixVersions.latest
23    npins
24    delve
25    gh
26    gitMinimal
27    git-cliff
28    go
29    golangci-lint
30    gopls
31    nodejs
32    pinact
33  ];
34
35  shellHook = builtins.readFile ./shell-hook.bash;
36}