Merge pull request #27624 from rvl/hyper-haskell

hyper-haskell: init at 0.1.0.2
This commit is contained in:
Matthew Justin Bauer 2018-03-22 11:31:15 -05:00 committed by GitHub
commit 5832a6fdfb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 85 additions and 0 deletions

View file

@ -0,0 +1,50 @@
{ stdenv, fetchFromGitHub, writeText, jshon, electron, hyper-haskell-server, extra-packages ? [] }:
let
binPath = stdenv.lib.makeBinPath ([ hyper-haskell-server ] ++ extra-packages);
in stdenv.mkDerivation rec {
name = "hyper-haskell-${version}";
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
#!${stdenv.shell}
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 ];
};
}

View file

@ -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";
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;
}

View file

@ -16054,6 +16054,20 @@ with pkgs;
hyper = callPackage ../applications/misc/hyper { inherit (gnome2) GConf; };
hyperterm = self.hyper;
hyper-haskell-server-with-packages = callPackage ../development/tools/haskell/hyper-haskell/server.nix {
inherit (haskellPackages) ghcWithPackages;
packages = self: with self; [];
};
hyper-haskell = callPackage ../development/tools/haskell/hyper-haskell {
hyper-haskell-server = hyper-haskell-server-with-packages.override {
packages = self: with self; [
hyper-extra diagrams csound-catalog
];
};
extra-packages = [ csound ];
};
jackline = callPackage ../applications/networking/instant-messengers/jackline { };
slack = callPackage ../applications/networking/instant-messengers/slack { };