zoxide: 0.9.6 -> 0.9.7 (#380745)
[NixPkgs.git] / pkgs / by-name / sc / scalafmt / package.nix
blob108b93e5cb62d96521feaf97ce6d9e178fd24bd9
2   lib,
3   stdenv,
4   jre,
5   coursier,
6   makeWrapper,
7   setJavaClassPath,
8 }:
10 let
11   baseName = "scalafmt";
12   version = "3.7.17";
13   deps = stdenv.mkDerivation {
14     name = "${baseName}-deps-${version}";
15     buildCommand = ''
16       export COURSIER_CACHE=$(pwd)
17       ${coursier}/bin/cs fetch org.scalameta:scalafmt-cli_2.13:${version} > deps
18       mkdir -p $out/share/java
19       cp $(< deps) $out/share/java/
20     '';
21     outputHashMode = "recursive";
22     outputHash = "sha256-8gK+fOnqwPFBbSWltNKInzXRJQ3WZxPlLqpvuTxF4fk=";
23   };
25 stdenv.mkDerivation {
26   pname = baseName;
27   inherit version;
29   nativeBuildInputs = [
30     makeWrapper
31     setJavaClassPath
32   ];
33   buildInputs = [ deps ];
35   dontUnpack = true;
37   installPhase = ''
38     runHook preInstall
40     makeWrapper ${jre}/bin/java $out/bin/${baseName} \
41       --add-flags "-cp $CLASSPATH org.scalafmt.cli.Cli"
43     runHook postInstall
44   '';
46   installCheckPhase = ''
47     $out/bin/${baseName} --version | grep -q "${version}"
48   '';
50   meta = with lib; {
51     description = "Opinionated code formatter for Scala";
52     homepage = "http://scalameta.org/scalafmt";
53     license = licenses.asl20;
54     maintainers = [ maintainers.markus1189 ];
55     mainProgram = "scalafmt";
56   };