1{ lib, elixir, fetchFromGitHub, fetchMixDeps, mixRelease, nix-update-script }:
2# Based on ../elixir-ls/default.nix
3
4let
5 pname = "ex_doc";
6 version = "0.34.1";
7 src = fetchFromGitHub {
8 owner = "elixir-lang";
9 repo = "${pname}";
10 rev = "v${version}";
11 hash = "sha256-OXIRippEDYAKD222XzNJkkZdXbUkDUauv5amr4oAU7c=";
12 };
13in
14mixRelease {
15 inherit pname version src elixir;
16
17 stripDebug = true;
18
19 mixFodDeps = fetchMixDeps {
20 pname = "mix-deps-${pname}";
21 inherit src version elixir;
22 hash = "sha256-fYINsATbw3M3r+IVoYS14aVEsg9OBuH6mNUqzQJuDQo=";
23 };
24
25 configurePhase = ''
26 runHook preConfigure
27 mix deps.compile --no-deps-check
28 runHook postConfigure
29 '';
30
31 buildPhase = ''
32 runHook preBuild
33 mix do escript.build
34 runHook postBuild
35 '';
36
37 installPhase = ''
38 runHook preInstall
39 mkdir -p $out/bin
40 cp -v ex_doc $out/bin
41 runHook postInstall
42 '';
43
44 meta = with lib; {
45 homepage = "https://github.com/elixir-lang/ex_doc";
46 description = ''
47 ExDoc produces HTML and EPUB documentation for Elixir projects
48 '';
49 license = licenses.asl20;
50 platforms = platforms.unix;
51 mainProgram = "ex_doc";
52 maintainers = with maintainers; [chiroptical];
53 };
54 passthru.updateScript = nix-update-script { };
55}