summaryrefslogtreecommitdiff
path: root/pkgs/development/compilers/openjdk/tests/hello.nix
blob: 775703ff40ec839bdb814ff94448b3f7175d0820 (plain)
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
41
42
43
{
  jdk,
  jre,
  pkgs,
}:

# 'Hello world' Java application derivation for use in tests
let
  source = pkgs.writeTextDir "src/Hello.java" ''
    class Hello {
      public static void main(String[] args) {
        System.out.println("Hello, world!");
      }
    }
  '';
in
pkgs.stdenv.mkDerivation {
  pname = "hello";
  version = "1.0.0";

  src = source;

  buildPhase = ''
    runHook preBuild
    ${jdk}/bin/javac src/Hello.java
    runHook postBuild
  '';
  installPhase = ''
    runHook preInstall

    mkdir -p $out/lib
    cp src/Hello.class $out/lib

    mkdir -p $out/bin
    cat >$out/bin/hello <<EOF;
    #!/usr/bin/env sh
    ${jre}/bin/java -cp $out/lib Hello
    EOF
    chmod a+x $out/bin/hello

    runHook postInstall
  '';
}