aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/hyper-haskell
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/tools/haskell/hyper-haskell
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/tools/haskell/hyper-haskell')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/default.nix51
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/server.nix21
2 files changed, 72 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/default.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/default.nix
new file mode 100644
index 000000000000..df889d43d463
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, jshon, electron_3
+, runtimeShell, hyper-haskell-server, extra-packages ? [] }:
+
+let
+ binPath = stdenv.lib.makeBinPath ([ hyper-haskell-server ] ++ extra-packages);
+ electron = electron_3;
+in stdenv.mkDerivation rec {
+ pname = "hyper-haskell";
+ version = "0.1.0.2";
+
+ src = fetchFromGitHub {
+ owner = "HeinrichApfelmus";
+ repo = "hyper-haskell";
+ rev = "v${version}";
+ sha256 = "1k38h7qx12z7463z8466pji0nwfkp4qkg7q83kns2mzmwmw5jnmb";
+ };
+
+ propagatedBuildInputs = extra-packages;
+
+ buildCommand = ''
+ mkdir -p $out/bin $out/share/hyper-haskell/worksheets $out/share/applications $out/share/icons/hicolor/scalable/apps $out/share/mime/packages
+
+ # Electron app
+ cp -R $src/app $out
+
+ # Desktop Launcher
+ cp $src/resources/hyper-haskell.desktop $out/share/applications/hyper-haskell.desktop
+ cp $src/resources/icons/icon.svg $out/share/icons/hicolor/scalable/apps/hyper-haskell.svg
+ cp $src/resources/shared-mime-info.xml $out/share/mime/packages/hyper-haskell.xml
+
+ # install example worksheets with backend set to nix
+ for worksheet in "$src/worksheets/"*.hhs; do
+ ${jshon}/bin/jshon -e settings -s nix -i packageTool -p < $worksheet > $out/share/hyper-haskell/worksheets/`basename $worksheet`
+ done
+
+ # install electron wrapper script
+ cat > $out/bin/hyper-haskell <<EOF
+ #!${runtimeShell}
+ export PATH="${binPath}:\$PATH"
+ exec ${electron}/bin/electron $out/app "\$@"
+ EOF
+ chmod 755 $out/bin/hyper-haskell
+ '';
+
+ meta = with stdenv.lib; {
+ description = "The strongly hyped graphical interpreter for the Haskell programming language";
+ homepage = "https://github.com/HeinrichApfelmus/hyper-haskell";
+ license = licenses.bsd3;
+ maintainers = [ maintainers.rvl ];
+ };
+}
diff --git a/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/server.nix b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/server.nix
new file mode 100644
index 000000000000..47a9c550fa8b
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/server.nix
@@ -0,0 +1,21 @@
+{ stdenv, ghcWithPackages, makeWrapper, packages }:
+
+let
+hyperHaskellEnv = ghcWithPackages (self: [ self.hyper-haskell-server ] ++ packages self);
+in stdenv.mkDerivation {
+ name = "hyper-haskell-server-with-packages-${hyperHaskellEnv.version}";
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ buildCommand = ''
+ mkdir -p $out/bin
+ makeWrapper ${hyperHaskellEnv}/bin/hyper-haskell-server $out/bin/hyper-haskell-server \
+ --set NIX_GHC ${hyperHaskellEnv}/bin/ghc \
+ --set NIX_GHCPKG ${hyperHaskellEnv}/bin/ghc-pkg \
+ --set NIX_GHC_LIBDIR ${hyperHaskellEnv}/lib/ghc-*
+ '';
+
+ # trivial derivation
+ preferLocalBuild = true;
+ allowSubstitutes = false;
+}