diff options
author | Eric Bailey <yurrriq@users.noreply.github.com> | 2016-07-12 06:48:33 -0500 |
---|---|---|
committer | Domen Kožar <domen@dev.si> | 2016-07-12 13:48:33 +0200 |
commit | 9d58f894cdd8cb606078b2b434662fb229cc4fd4 (patch) | |
tree | b3858a760a975397b4b6b2592882d3994d119d26 /pkgs/development/interpreters | |
parent | 0fa00cce01c4924365a4e1d70e9bcec9ca2c0185 (diff) | |
download | nixlib-9d58f894cdd8cb606078b2b434662fb229cc4fd4.tar nixlib-9d58f894cdd8cb606078b2b434662fb229cc4fd4.tar.gz nixlib-9d58f894cdd8cb606078b2b434662fb229cc4fd4.tar.bz2 nixlib-9d58f894cdd8cb606078b2b434662fb229cc4fd4.tar.lz nixlib-9d58f894cdd8cb606078b2b434662fb229cc4fd4.tar.xz nixlib-9d58f894cdd8cb606078b2b434662fb229cc4fd4.tar.zst nixlib-9d58f894cdd8cb606078b2b434662fb229cc4fd4.zip |
lfe: init at 1.1.1 (#16865)
This is a first pass at adding an LFE package. N.B. man pages are ignored for now.
Diffstat (limited to 'pkgs/development/interpreters')
-rw-r--r-- | pkgs/development/interpreters/lfe/default.nix | 62 | ||||
-rw-r--r-- | pkgs/development/interpreters/lfe/setup-hook.sh | 5 |
2 files changed, 67 insertions, 0 deletions
diff --git a/pkgs/development/interpreters/lfe/default.nix b/pkgs/development/interpreters/lfe/default.nix new file mode 100644 index 000000000000..f3a54aef8ab1 --- /dev/null +++ b/pkgs/development/interpreters/lfe/default.nix @@ -0,0 +1,62 @@ +{ stdenv, fetchFromGitHub, erlang, makeWrapper, coreutils, bash }: + +stdenv.mkDerivation rec { + name = "lfe-${version}"; + version = "1.1.1"; + + src = fetchFromGitHub { + owner = "rvirding"; + repo = "lfe"; + rev = version; + sha256 = "0w1vpjqj8ni43gi84i0mcml4gfaqhmmd9s46di37cngpdw86i3bz"; + }; + + buildInputs = [ erlang makeWrapper ]; + + setupHook = ./setup-hook.sh; + + # These installPhase tricks are based on Elixir's Makefile. + # TODO: Make, upload, and apply a patch. + installPhase = '' + local libdir=$out/lib/lfe + local ebindir=$libdir/ebin + local bindir=$libdir/bin + + rm -Rf $ebindir + install -m755 -d $ebindir + install -m644 ebin/* $ebindir + + install -m755 -d $bindir + for bin in bin/lfe{,c,doc,script}; do install -m755 $bin $bindir; done + + install -m755 -d $out/bin + for file in $bindir/*; do ln -sf $file $out/bin/; done + ''; + + # Thanks again, Elixir. + postFixup = '' + # LFE binaries are shell scripts which run erl and lfe. + # Add some stuff to PATH so the scripts can run without problems. + for f in $out/bin/*; do + wrapProgram $f \ + --prefix PATH ":" "${erlang}/bin:${coreutils}/bin:${bash}/bin:$out/bin" + substituteInPlace $f --replace "/usr/bin/env" "${coreutils}/bin/env" + done + ''; + + meta = with stdenv.lib; { + description = "The best of Erlang and of Lisp; at the same time!"; + longDescription = '' + LFE, Lisp Flavoured Erlang, is a lisp syntax front-end to the Erlang + compiler. Code produced with it is compatible with "normal" Erlang + code. An LFE evaluator and shell is also included. + ''; + + homepage = "http://lfe.io"; + downloadPage = "https://github.com/rvirding/lfe/releases"; + + license = licenses.asl20; + maintainers = with maintainers; [ yurrriq ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/development/interpreters/lfe/setup-hook.sh b/pkgs/development/interpreters/lfe/setup-hook.sh new file mode 100644 index 000000000000..2405dcea15f3 --- /dev/null +++ b/pkgs/development/interpreters/lfe/setup-hook.sh @@ -0,0 +1,5 @@ +addLfeLibPath() { + addToSearchPath ERL_LIBS $1/lib/lfe/lib +} + +envHooks+=(addLfeLibPath) |