about summary refs log tree commit diff
path: root/pkgs/development/tools/nailgun/default.nix
blob: 6a34c1c130d981150f92fa9f37fb201d17c0a2ac (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
{ stdenv, fetchMavenArtifact, fetchFromGitHub, jre, makeWrapper }:

let
  version = "0.9.1";
  nailgun-server = fetchMavenArtifact {
    groupId = "com.martiansoftware";
    artifactId = "nailgun-server";
    inherit version;
    sha256 = "09ggkkd1s58jmpc74s6m10d3hyf6bmif31advk66zljbpykgl625";
  };
in
stdenv.mkDerivation rec {
  name = "nailgun-${version}";

  src = fetchFromGitHub {
    owner = "martylamb";
    repo = "nailgun";
    rev = "1ad9ad9d2d17c895144a9ee0e7acb1d3d90fb66f";
    sha256 = "1f8ac5kg7imhix9kqdzwiav1bxh8vljv2hb1mq8yz4rqsrx2r4w3";
  };

  makeFlags = "PREFIX=$(out)";

  buildInputs = [ makeWrapper ];

  installPhase = ''
    install -D ng $out/bin/ng

    makeWrapper ${jre}/bin/java $out/bin/ng-server \
      --add-flags '-cp ${nailgun-server.jar}:$CLASSPATH com.martiansoftware.nailgun.NGServer'
  '';

  meta = with stdenv.lib; {
    description = "Client, protocol, and server for running Java programs from the command line without incurring the JVM startup overhead";
    homepage = http://martiansoftware.com/nailgun/;
    license = licenses.apsl20;
    platforms = platforms.linux;
    maintainers = with maintainers; [ volth ];
  };
}