diff options
author | Mx Kookie <kookie@spacekookie.de> | 2020-10-31 19:35:09 +0100 |
---|---|---|
committer | Mx Kookie <kookie@spacekookie.de> | 2020-10-31 19:35:09 +0100 |
commit | c4625b175f8200f643fd6e11010932ea44c78433 (patch) | |
tree | bce3f89888c8ac3991fa5569a878a9eab6801ccc /infra/libkookie/nixpkgs/pkgs/development/tools/haskell/hyper-haskell | |
parent | 49f735974dd103039ddc4cb576bb76555164a9e7 (diff) | |
parent | d661aa56a8843e991261510c1bb28fdc2f6975ae (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.nix | 51 | ||||
-rw-r--r-- | infra/libkookie/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/server.nix | 21 |
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; +} |