{ elixir, beamPackages, fetchFromGitHub }:

beamPackages.mixRelease rec {
  pname = "protoc-gen-elixir";

  version = "v0.12.0";

  inherit elixir;

  src = fetchFromGitHub {
    owner = "elixir-protobuf";
    repo = "protobuf";
    rev = "ce9a031a5cae97336d4674670d313d54f1f80bf6";
    sha256 = "wLU3iM9jI/Zc96/HfPUjNvjteGryWos6IobIb/4zqpw=";
  };

  mixFodDeps = beamPackages.fetchMixDeps {
    pname = "mix-deps-${pname}";
    inherit src version;
    sha256 = "H7yiBHoxuiqWcNbWwPU5X0Nnv8f6nM8z/ZAfZAGPZjE=";
  };

  installPhase = ''
    mix escript.build
    mkdir -p $out/bin
    mv ./protoc-gen-elixir $out/bin
  '';
}