bloop: init at 1.0.0-M11

Changed files
+101
nixos
modules
services
development
pkgs
development
tools
build-managers
bloop
top-level
+1
nixos/modules/module-list.nix
···
./services/desktops/gnome3/tracker-miners.nix
./services/desktops/profile-sync-daemon.nix
./services/desktops/telepathy.nix
+
./services/development/bloop.nix
./services/development/hoogle.nix
./services/editors/emacs.nix
./services/editors/infinoted.nix
+37
nixos/modules/services/development/bloop.nix
···
+
{ config, lib, pkgs, ... }:
+
+
with lib;
+
+
let
+
+
cfg = config.services.bloop;
+
+
in {
+
+
options.services.bloop = {
+
install = mkOption {
+
type = types.bool;
+
default = false;
+
description = ''
+
Whether to install a user service for the Bloop server.
+
+
The service must be manually started for each user with
+
"systemctl --user start bloop".
+
'';
+
};
+
};
+
+
config = mkIf (cfg.install) {
+
systemd.user.services.bloop = {
+
description = "Bloop Scala build server";
+
+
serviceConfig = {
+
Type = "simple";
+
ExecStart = ''${pkgs.bloop}/bin/blp-server'';
+
Restart = "always";
+
};
+
};
+
+
environment.systemPackages = [ pkgs.bloop ];
+
};
+
}
+61
pkgs/development/tools/build-managers/bloop/default.nix
···
+
{ stdenv, lib, fetchurl, coursier, jdk, jre, python, makeWrapper }:
+
+
let
+
baseName = "bloop";
+
version = "1.0.0-M11";
+
deps = stdenv.mkDerivation {
+
name = "${baseName}-deps-${version}";
+
buildCommand = ''
+
export COURSIER_CACHE=$(pwd)
+
${coursier}/bin/coursier fetch ch.epfl.scala:bloop-frontend_2.12:${version} \
+
-r "bintray:scalameta/maven" \
+
-r "bintray:scalacenter/releases" \
+
-r "https://oss.sonatype.org/content/repositories/staging" > deps
+
mkdir -p $out/share/java
+
cp $(< deps) $out/share/java/
+
'';
+
outputHashMode = "recursive";
+
outputHashAlgo = "sha256";
+
outputHash = "00p9mrwcms3skzicyj8frqs0r0a2rfvk5fbh58rk5yvcvkwl4fy1";
+
};
+
in
+
stdenv.mkDerivation rec {
+
name = "${baseName}-${version}";
+
nailgunCommit = "60c2d130";
+
+
buildInputs = [ jdk makeWrapper deps ];
+
+
phases = [ "installPhase" ];
+
+
client = fetchurl {
+
url = "https://raw.githubusercontent.com/scalacenter/nailgun/${nailgunCommit}/pynailgun/ng.py";
+
sha256 = "0qjw4nsyb4cxg96jj1yv5c0ivcxvmscxxqfzll5w9p1pjb30bq0n";
+
};
+
+
zshCompletion = fetchurl {
+
url = "https://raw.githubusercontent.com/scalacenter/bloop/v${version}/etc/zsh/_bloop";
+
sha256 = "1id6f1fgy2rk0q5aad6ffivhbxa94fallzsc04l9n0y1s2xdhqpm";
+
};
+
+
installPhase = ''
+
mkdir -p $out/bin
+
mkdir -p $out/share/zsh/site-functions
+
+
cp ${client} $out/bin/blp-client
+
cp ${zshCompletion} $out/share/zsh/site-functions/_bloop
+
chmod +x $out/bin/blp-client
+
+
makeWrapper ${jre}/bin/java $out/bin/blp-server \
+
--prefix PATH : ${lib.makeBinPath [ jdk ]} \
+
--add-flags "-cp $CLASSPATH bloop.Server"
+
makeWrapper $out/bin/blp-client $out/bin/bloop \
+
--prefix PATH : ${lib.makeBinPath [ python ]}
+
'';
+
+
meta = with stdenv.lib; {
+
homepage = https://scalacenter.github.io/bloop/;
+
license = licenses.asl20;
+
description = "Bloop is a Scala build server and command-line tool to make the compile and test developer workflows fast and productive in a build-tool-agnostic way.";
+
maintainers = with maintainers; [ tomahna ];
+
};
+
}
+2
pkgs/top-level/all-packages.nix
···
bloaty = callPackage ../development/tools/bloaty { };
+
bloop = callPackage ../development/tools/build-managers/bloop { };
+
bossa = callPackage ../development/tools/misc/bossa {
wxGTK = wxGTK30;
};