1{
2 lib,
3 elixir,
4 fetchFromGitHub,
5 fetchMixDeps,
6 mixRelease,
7 nix-update-script,
8
9 # for tests
10 beam27Packages,
11 beam28Packages,
12}:
13# Based on ../elixir-ls/default.nix
14
15let
16 pname = "ex_doc";
17 version = "0.38.2";
18 src = fetchFromGitHub {
19 owner = "elixir-lang";
20 repo = "${pname}";
21 rev = "v${version}";
22 hash = "sha256-Qv1vDfDGquWoem42IqA8lDiFWEtznT7ONIXSOCvn39g=";
23 };
24in
25mixRelease {
26 inherit
27 pname
28 version
29 src
30 elixir
31 ;
32
33 escriptBinName = "ex_doc";
34
35 stripDebug = true;
36
37 mixFodDeps = fetchMixDeps {
38 pname = "mix-deps-${pname}";
39 inherit src version elixir;
40 hash = "sha256-TknrENa0Nb1Eobd4oTBl6TilPVEsw9+XjPdF3Ntq+DI=";
41 };
42
43 passthru = {
44 tests = {
45 # ex_doc is the doc generation for OTP 27+, so let's make sure they build
46 erlang_27 = beam27Packages.erlang;
47 erlang_28 = beam28Packages.erlang;
48 };
49
50 updateScript = nix-update-script { };
51 };
52
53 meta = with lib; {
54 homepage = "https://github.com/elixir-lang/ex_doc";
55 description = ''
56 ExDoc produces HTML and EPUB documentation for Elixir projects
57 '';
58 license = licenses.asl20;
59 platforms = platforms.unix;
60 mainProgram = "ex_doc";
61 maintainers = with maintainers; [ chiroptical ];
62 };
63}