biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / development / tools / scalafmt / default.nix
blobdb65c8f3b79ce5ba063cc16ce43489f91261f242
1 { lib, stdenv, jre, coursier, makeWrapper, setJavaClassPath }:
3 let
4   baseName = "scalafmt";
5   version = "3.7.9";
6   deps = stdenv.mkDerivation {
7     name = "${baseName}-deps-${version}";
8     buildCommand = ''
9       export COURSIER_CACHE=$(pwd)
10       ${coursier}/bin/cs fetch org.scalameta:scalafmt-cli_2.13:${version} > deps
11       mkdir -p $out/share/java
12       cp $(< deps) $out/share/java/
13     '';
14     outputHashMode = "recursive";
15     outputHash = "sha256-r4vv62H0AryjZb+34fVHvqvndipOYyf6XpQC9u8Dxso=";
16   };
18 stdenv.mkDerivation {
19   pname = baseName;
20   inherit version;
22   nativeBuildInputs = [ makeWrapper setJavaClassPath ];
23   buildInputs = [ deps ];
25   dontUnpack = true;
27   installPhase = ''
28     runHook preInstall
30     makeWrapper ${jre}/bin/java $out/bin/${baseName} \
31       --add-flags "-cp $CLASSPATH org.scalafmt.cli.Cli"
33     runHook postInstall
34   '';
36   installCheckPhase = ''
37     $out/bin/${baseName} --version | grep -q "${version}"
38   '';
40   meta = with lib; {
41     description = "Opinionated code formatter for Scala";
42     homepage = "http://scalameta.org/scalafmt";
43     license = licenses.asl20;
44     maintainers = [ maintainers.markus1189 ];
45     mainProgram = "scalafmt";
46   };