Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 stdenv, 4 fetchurl, 5 jre, 6 makeWrapper, 7}: 8 9stdenv.mkDerivation rec { 10 pname = "google-java-format"; 11 version = "1.28.0"; 12 13 src = fetchurl { 14 url = "https://github.com/google/google-java-format/releases/download/v${version}/google-java-format-${version}-all-deps.jar"; 15 sha256 = "sha256-MjQufBtGAPgN80cdpGrugBLT4URdXqG+H7cSibB8xzU="; 16 }; 17 18 dontUnpack = true; 19 20 nativeBuildInputs = [ makeWrapper ]; 21 buildInputs = [ jre ]; 22 23 installPhase = '' 24 runHook preInstall 25 26 mkdir -p $out/{bin,share/${pname}} 27 install -D ${src} $out/share/${pname}/google-java-format-${version}-all-deps.jar 28 29 makeWrapper ${jre}/bin/java $out/bin/${pname} \ 30 --argv0 ${pname} \ 31 --add-flags "--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED" \ 32 --add-flags "--add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED" \ 33 --add-flags "--add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED" \ 34 --add-flags "--add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED" \ 35 --add-flags "--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED" \ 36 --add-flags "-jar $out/share/${pname}/google-java-format-${version}-all-deps.jar" 37 38 runHook postInstall 39 ''; 40 41 meta = with lib; { 42 description = "Java source formatter by Google"; 43 longDescription = '' 44 A program that reformats Java source code to comply with Google Java Style. 45 ''; 46 homepage = "https://github.com/google/google-java-format"; 47 sourceProvenance = with sourceTypes; [ binaryBytecode ]; 48 license = licenses.asl20; 49 maintainers = [ maintainers.emptyflask ]; 50 platforms = platforms.all; 51 mainProgram = "google-java-format"; 52 }; 53}