aboutsummaryrefslogtreecommitdiff
path: root/nix/purescript.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nix/purescript.nix')
-rw-r--r--nix/purescript.nix49
1 files changed, 49 insertions, 0 deletions
diff --git a/nix/purescript.nix b/nix/purescript.nix
new file mode 100644
index 0000000..5b757b4
--- /dev/null
+++ b/nix/purescript.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl, makeWrapper, patchelf, gmpxx, ncurses5, zlib }:
+
+with stdenv; with lib;
+
+mkDerivation rec {
+ name = "purescript-binary-${version}";
+ version = "0.12.0";
+ platform = {
+ "x86_64-linux" = "linux64";
+ }.${hostPlatform.system};
+ src = fetchurl {
+ url =
+ "https://github.com/"
+ + "purescript/purescript/releases/download/"
+ + "v${version}/${platform}.tar.gz";
+ sha256 = {
+ "x86_64-linux" = "1wf7n5y8qsa0s2p0nb5q81ck6ajfyp9ijr72bf6j6bhc6pcpgmyc";
+ }.${hostPlatform.system};
+ name = "purescript.tar.gz";
+ };
+
+ buildInputs = [ makeWrapper ];
+ unpackCmd = "tar -xzf $curSrc";
+
+ installPhase = ''
+ mkdir -p $out/bin $out/lib
+ cp purs $out/bin/
+ runHook postInstall
+ '';
+
+ postInstall = let
+ libs = makeLibraryPath [ cc.cc gmpxx ncurses5 zlib ];
+ in ''
+ interpreter="$(cat $NIX_CC/nix-support/dynamic-linker)"
+ ${patchelf}/bin/patchelf \
+ --set-interpreter $interpreter \
+ $out/bin/purs
+ wrapProgram $out/bin/purs \
+ --prefix LD_LIBRARY_PATH : ${libs}
+ '';
+
+ meta = {
+ description = "A small strongly typed programming language with expressive
+ types that compiles to JavaScript, written in and inspired by Haskell.";
+ homepage = http://www.purescript.org/;
+ license = licenses.bsd3;
+ platforms = [ "x86_64-linux" ];
+ };
+}