aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/development/compilers/purescript/psc-package
diff options
context:
space:
mode:
authorMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
committerMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
commitc4625b175f8200f643fd6e11010932ea44c78433 (patch)
treebce3f89888c8ac3991fa5569a878a9eab6801ccc /infra/libkookie/nixpkgs/pkgs/development/compilers/purescript/psc-package
parent49f735974dd103039ddc4cb576bb76555164a9e7 (diff)
parentd661aa56a8843e991261510c1bb28fdc2f6975ae (diff)
Add 'infra/libkookie/' from commit 'd661aa56a8843e991261510c1bb28fdc2f6975ae'
git-subtree-dir: infra/libkookie git-subtree-mainline: 49f735974dd103039ddc4cb576bb76555164a9e7 git-subtree-split: d661aa56a8843e991261510c1bb28fdc2f6975ae
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/development/compilers/purescript/psc-package')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/compilers/purescript/psc-package/default.nix61
1 files changed, 61 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/development/compilers/purescript/psc-package/default.nix b/infra/libkookie/nixpkgs/pkgs/development/compilers/purescript/psc-package/default.nix
new file mode 100644
index 000000000000..0bebd5d2f50d
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/compilers/purescript/psc-package/default.nix
@@ -0,0 +1,61 @@
+# Based on https://github.com/justinwoo/easy-purescript-nix/blob/master/psc-package-simple.nix
+{ stdenv, lib, fetchurl, gmp, zlib, libiconv, darwin, installShellFiles }:
+
+let
+ dynamic-linker = stdenv.cc.bintools.dynamicLinker;
+
+in
+stdenv.mkDerivation rec {
+ pname = "psc-package-simple";
+
+ version = "0.6.2";
+
+ src = if stdenv.isDarwin
+ then fetchurl {
+ url = "https://github.com/purescript/psc-package/releases/download/v0.6.2/macos.tar.gz";
+ sha256 = "17dh3bc5b6ahfyx0pi6n9qnrhsyi83qdynnca6k1kamxwjimpcq1";
+ }
+ else fetchurl {
+ url = "https://github.com/purescript/psc-package/releases/download/v0.6.2/linux64.tar.gz";
+ sha256 = "1zvay9q3xj6yd76w6qyb9la4jaj9zvpf4dp78xcznfqbnbhm1a54";
+ };
+
+ buildInputs = [ gmp zlib ];
+ nativeBuildInputs = [ installShellFiles ];
+
+ libPath = lib.makeLibraryPath buildInputs;
+
+ dontStrip = true;
+
+ installPhase = ''
+ mkdir -p $out/bin
+
+ PSC_PACKAGE=$out/bin/psc-package
+
+ install -D -m555 -T psc-package $PSC_PACKAGE
+ chmod u+w $PSC_PACKAGE
+ '' + lib.optionalString stdenv.isDarwin ''
+ install_name_tool \
+ -change /usr/lib/libSystem.B.dylib ${darwin.Libsystem}/lib/libSystem.B.dylib \
+ -change /usr/lib/libiconv.2.dylib ${libiconv}/libiconv.2.dylib \
+ $PSC_PACKAGE
+ '' + lib.optionalString (!stdenv.isDarwin) ''
+ patchelf --interpreter ${dynamic-linker} --set-rpath ${libPath} $PSC_PACKAGE
+ '' + ''
+ chmod u-w $PSC_PACKAGE
+
+ $PSC_PACKAGE --bash-completion-script $PSC_PACKAGE > psc-package.bash
+ $PSC_PACKAGE --fish-completion-script $PSC_PACKAGE > psc-package.fish
+ $PSC_PACKAGE --zsh-completion-script $PSC_PACKAGE > _psc-package
+ installShellCompletion \
+ psc-package.{bash,fish} \
+ --zsh _psc-package
+ '';
+
+ meta = with lib; {
+ description = "A package manager for PureScript based on package sets";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ Profpatsch ];
+ platforms = [ "x86_64-darwin" "x86_64-linux" ];
+ };
+}