Guest User

elixir-ls.nix

a guest
Apr 12th, 2020
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. { stdenv, fetchFromGitHub, lib, erlang, elixir, git, cacert }:
  2.  
  3. let
  4. name = "elixir-ls";
  5. version = "0.3.2";
  6.  
  7. src = fetchFromGitHub {
  8. owner = "elixir-lsp";
  9. repo = name;
  10. rev = "v${version}";
  11. sha256 = "1wv2rcccdfixc2mxsqajfh9634f13dzrfq0zrskn5iwgnnwlc8vm";
  12. };
  13.  
  14. src-with-deps = stdenv.mkDerivation {
  15. name = "${name}-src-with-deps";
  16.  
  17. nativeBuildInputs = [ elixir erlang git cacert ];
  18.  
  19. inherit src;
  20.  
  21. configurePhase = ''
  22. mkdir -p __home
  23. export HOME=$(pwd)/__home
  24. '';
  25.  
  26. buildPhase = ''
  27. mix local.hex --force
  28. mix local.rebar --force
  29. mix deps.get
  30. '';
  31.  
  32. installPhase = ''
  33. patchShebangs $HOME/.mix/rebar{,3}
  34. cp -r . $out
  35. '';
  36.  
  37. outputHashMode = "recursive";
  38. outputHashAlgo = "sha256";
  39. outputHash = "0y9l7iv69l1q17vqk23kj5drwg00f79ycrf0b5n7g46aamwhlnjd";
  40. };
  41. in stdenv.mkDerivation rec {
  42. inherit name version;
  43.  
  44. src = src-with-deps;
  45.  
  46. nativeBuildInputs = [ git erlang ];
  47. buildInputs = [ elixir ];
  48.  
  49. configurePhase = ''
  50. export HOME=$(pwd)/__home
  51. '';
  52.  
  53. buildPhase = ''
  54. mix compile
  55. '';
  56.  
  57. installPhase = ''
  58. mkdir -p $out/bin
  59. mix elixir_ls.release -o $out/bin
  60. sed -i 's|elixir|${elixir}/bin/elixir|' $out/bin/language_server.sh
  61. ln -s language_server.sh $out/bin/elixir-ls
  62. '';
  63.  
  64. meta = with lib; {
  65. description = "A frontend-independent IDE \"smartness\" server for Elixir.";
  66. license = licenses.asl20;
  67. homepage = https://github.com/elixir-lsp/elixir-ls;
  68. };
  69. }
Add Comment
Please, Sign In to add comment