/
shell.nix
46 lines (44 loc) · 1.04 KB
/
shell.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
{ pkgs ? (
let
inherit (builtins) fetchTree fromJSON readFile;
inherit ((fromJSON (readFile ./flake.lock)).nodes) nixpkgs gomod2nix;
in
import (fetchTree nixpkgs.locked) {
overlays = [
(import "${fetchTree gomod2nix.locked}/overlay.nix")
];
}
)
, mkGoEnv ? pkgs.mkGoEnv
, gomod2nix ? pkgs.gomod2nix
}:
let
goEnv = mkGoEnv { pwd = ./.; };
go-jsonschema = pkgs.stdenv.mkDerivation {
name = "go-jsonschema";
src = pkgs.fetchurl {
url = "https://github.com/omissis/go-jsonschema/releases/download/v0.15.0/go-jsonschema_Linux_x86_64.tar.gz";
sha256 = "diR8EUGrEcVyhW5kAyDyHluoWRnj3lUlNL2BbhUjFS4=";
};
dontUnpack = true;
installPhase = ''
mkdir -p $out/bin
tar -xzf $src -C $out/bin
'';
buildInputs = [ pkgs.unzip ];
};
in
pkgs.mkShell {
packages = [
goEnv
gomod2nix
pkgs.check-jsonschema
pkgs.jsonnet
pkgs.jq
go-jsonschema
];
shellHook = ''
export PATH=$PWD/result/bin:$PATH
eval "$(sdflow --completions bash)"
'';
}