1{
2 lib,
3 stdenv,
4 jre,
5 coursier,
6 makeWrapper,
7 installShellFiles,
8 setJavaClassPath,
9 testers,
10}:
11stdenv.mkDerivation (finalAttrs: {
12 pname = "scalafix";
13 version = "0.12.0";
14 deps = stdenv.mkDerivation {
15 name = "${finalAttrs.pname}-deps-${finalAttrs.version}";
16 buildCommand = ''
17 export COURSIER_CACHE=$(pwd)
18 ${coursier}/bin/cs fetch ch.epfl.scala:scalafix-cli_2.13.13:${finalAttrs.version} > deps
19 mkdir -p $out/share/java
20 cp $(< deps) $out/share/java/
21 '';
22 outputHashMode = "recursive";
23 outputHash = "sha256-HMTnr3awTIAgLSl4eF36U1kv162ajJxC5MreSk2TfUE=";
24 };
25
26 nativeBuildInputs = [
27 makeWrapper
28 installShellFiles
29 setJavaClassPath
30 ];
31 buildInputs = [ finalAttrs.deps ];
32
33 dontUnpack = true;
34
35 installPhase = ''
36 makeWrapper ${jre}/bin/java $out/bin/${finalAttrs.pname} \
37 --add-flags "-cp $CLASSPATH scalafix.cli.Cli"
38
39 installShellCompletion --cmd ${finalAttrs.pname} \
40 --bash <($out/bin/${finalAttrs.pname} --bash) \
41 --zsh <($out/bin/${finalAttrs.pname} --zsh)
42 '';
43
44 passthru.tests = {
45 testVersion = testers.testVersion {
46 package = finalAttrs.finalPackage;
47 version = "${finalAttrs.version}";
48 };
49 };
50
51 meta = with lib; {
52 description = "Refactoring and linting tool for Scala";
53 mainProgram = "scalafix";
54 homepage = "https://scalacenter.github.io/scalafix/";
55 license = licenses.bsd3;
56 maintainers = [ maintainers.tomahna ];
57 sourceProvenance = with sourceTypes; [ binaryBytecode ];
58 };
59})