1{ stdenv, fetchFromGitHub, ocamlPackages, cf-private, CoreServices }:
2
3stdenv.mkDerivation rec {
4 version = "0.92.0";
5 name = "flow-${version}";
6
7 src = fetchFromGitHub {
8 owner = "facebook";
9 repo = "flow";
10 rev = "refs/tags/v${version}";
11 sha256 = "1v83hkkbls5x2062ry3gwrnn9al8rhsmargv2mvanxlpf0a63wx3";
12 };
13
14 installPhase = ''
15 install -Dm755 bin/flow $out/bin/flow
16 install -Dm644 resources/shell/bash-completion $out/share/bash-completion/completions/flow
17 '';
18
19 buildInputs = (with ocamlPackages; [ ocaml findlib ocamlbuild dtoa core_kernel sedlex ocaml_lwt lwt_log lwt_ppx ppx_deriving ppx_gen_rec ppx_tools_versioned visitors wtf8 ])
20 ++ stdenv.lib.optionals stdenv.isDarwin [ cf-private CoreServices ];
21
22 meta = with stdenv.lib; {
23 description = "A static type checker for JavaScript";
24 homepage = https://flow.org/;
25 license = licenses.mit;
26 platforms = ocamlPackages.ocaml.meta.platforms;
27 maintainers = with maintainers; [ puffnfresh globin ];
28 };
29}