summary refs log tree commit diff
path: root/pkgs/development/compilers/purescript/purescript/default.nix
diff options
context:
space:
mode:
authorjustinwoo <moomoowoo@gmail.com>2019-03-20 10:20:05 +0200
committerjustinwoo <moomoowoo@gmail.com>2019-03-20 10:20:05 +0200
commitee1e16453ffcd4eb87090868eaa42d5458b59b15 (patch)
tree6a1c28c2e9f9085348d603c86f2929238ceb1660 /pkgs/development/compilers/purescript/purescript/default.nix
parent0810c406b71157c6a72737585a11b10b3de8bb18 (diff)
downloadnixpkgs-ee1e16453ffcd4eb87090868eaa42d5458b59b15.tar
nixpkgs-ee1e16453ffcd4eb87090868eaa42d5458b59b15.tar.gz
nixpkgs-ee1e16453ffcd4eb87090868eaa42d5458b59b15.tar.bz2
nixpkgs-ee1e16453ffcd4eb87090868eaa42d5458b59b15.tar.lz
nixpkgs-ee1e16453ffcd4eb87090868eaa42d5458b59b15.tar.xz
nixpkgs-ee1e16453ffcd4eb87090868eaa42d5458b59b15.tar.zst
nixpkgs-ee1e16453ffcd4eb87090868eaa42d5458b59b15.zip
purescript: inline referenced derivation
Diffstat (limited to 'pkgs/development/compilers/purescript/purescript/default.nix')
-rw-r--r--pkgs/development/compilers/purescript/purescript/default.nix60
1 files changed, 51 insertions, 9 deletions
diff --git a/pkgs/development/compilers/purescript/purescript/default.nix b/pkgs/development/compilers/purescript/purescript/default.nix
index 2b6518eef91..fd20e17ca1d 100644
--- a/pkgs/development/compilers/purescript/purescript/default.nix
+++ b/pkgs/development/compilers/purescript/purescript/default.nix
@@ -1,11 +1,53 @@
-{ fetchFromGitHub }:
+{ pkgs ? import <nixpkgs> {} }:
+
+# from justinwoo/easy-purescript-nix
+# https://github.com/justinwoo/easy-purescript-nix/blob/d383972c82620a712ead4033db14110497bc2c9c/purs.nix
 
 let
-  easyPS = import (fetchFromGitHub {
-    owner = "justinwoo";
-    repo = "easy-purescript-nix";
-    rev = "d383972c82620a712ead4033db14110497bc2c9c";
-    sha256 = "0hj85y3k0awd21j5s82hkskzp4nlzhi0qs4npnv172kaac03x8ms";
-  });
-
-in easyPS.purs
+  dynamic-linker = pkgs.stdenv.cc.bintools.dynamicLinker;
+
+  patchelf = libPath :
+    if pkgs.stdenv.isDarwin
+      then ""
+      else
+        ''
+          chmod u+w $PURS
+          patchelf --interpreter ${dynamic-linker} --set-rpath ${libPath} $PURS
+          chmod u-w $PURS
+        '';
+
+in pkgs.stdenv.mkDerivation rec {
+  name = "purs-simple";
+  version = "v0.12.3";
+
+  src =
+    if pkgs.stdenv.isDarwin
+    then
+    pkgs.fetchurl {
+      url = "https://github.com/purescript/purescript/releases/download/v0.12.3/macos.tar.gz";
+      sha256 = "1f916gv4fz571l4jvr15xjnsvjyy4nljv2ii9njwlm7k6yr5m0qn";
+    }
+    else
+    pkgs.fetchurl {
+      url = "https://github.com/purescript/purescript/releases/download/v0.12.3/linux64.tar.gz";
+      sha256 = "1fad862a2sv4njxbbcfzibbi585m6is3ywb94nmjl8ax254baj3i";
+    };
+
+
+  buildInputs = [ pkgs.zlib
+                  pkgs.gmp
+                  pkgs.ncurses5];
+  libPath = pkgs.lib.makeLibraryPath buildInputs;
+  dontStrip = true;
+
+  installPhase = ''
+    mkdir -p $out/bin
+    PURS="$out/bin/purs"
+
+    install -D -m555 -T purs $PURS
+    ${patchelf libPath}
+
+    mkdir -p $out/etc/bash_completion.d/
+    $PURS --bash-completion-script $PURS > $out/etc/bash_completion.d/purs-completion.bash
+  '';
+}