summary refs log tree commit diff
path: root/pkgs/development/tools/scalafmt/default.nix
diff options
context:
space:
mode:
authorMarkus Hauck <markus1189@gmail.com>2017-12-08 09:31:04 +0100
committerMarkus Hauck <markus1189@gmail.com>2017-12-10 17:02:40 +0100
commit614a6d43a7c81bdd58f5fe5e0fda682f87c1fb4d (patch)
tree067deb36683e5c96bcd728dbb21e877069af48c3 /pkgs/development/tools/scalafmt/default.nix
parentb459c8475c58f7c8d529ebeadcbebbfe00ddf6eb (diff)
downloadnixpkgs-614a6d43a7c81bdd58f5fe5e0fda682f87c1fb4d.tar
nixpkgs-614a6d43a7c81bdd58f5fe5e0fda682f87c1fb4d.tar.gz
nixpkgs-614a6d43a7c81bdd58f5fe5e0fda682f87c1fb4d.tar.bz2
nixpkgs-614a6d43a7c81bdd58f5fe5e0fda682f87c1fb4d.tar.lz
nixpkgs-614a6d43a7c81bdd58f5fe5e0fda682f87c1fb4d.tar.xz
nixpkgs-614a6d43a7c81bdd58f5fe5e0fda682f87c1fb4d.tar.zst
nixpkgs-614a6d43a7c81bdd58f5fe5e0fda682f87c1fb4d.zip
scalafmt: 0.6.8 -> 1.3.0
Diffstat (limited to 'pkgs/development/tools/scalafmt/default.nix')
-rw-r--r--pkgs/development/tools/scalafmt/default.nix43
1 files changed, 25 insertions, 18 deletions
diff --git a/pkgs/development/tools/scalafmt/default.nix b/pkgs/development/tools/scalafmt/default.nix
index 391c653b98a..ae2bbd08e4c 100644
--- a/pkgs/development/tools/scalafmt/default.nix
+++ b/pkgs/development/tools/scalafmt/default.nix
@@ -1,29 +1,36 @@
-{ stdenv, fetchurl, unzip, jre }:
+{ stdenv, jdk, jre, coursier, makeWrapper }:
 
-stdenv.mkDerivation rec {
-  version = "0.6.8";
+let
   baseName = "scalafmt";
-  name = "${baseName}-${version}";
-
-  src = fetchurl {
-    url = "https://github.com/scalameta/scalafmt/releases/download/v${version}/${baseName}.tar.gz";
-    sha256 = "1iaanrxk5lhxx1zj9gbxzgqbnyy1azfrab984mga7di5z1hs02s2";
+  version = "1.3.0";
+  deps = stdenv.mkDerivation {
+    name = "${baseName}-${version}-deps";
+    buildCommand = ''
+      export COURSIER_CACHE=$(pwd)
+      mkdir -p $out/share/java
+      cp $(${coursier}/bin/coursier fetch com.geirsson:scalafmt-cli_2.12:${version}) $out/share/java/
+    '';
+    outputHashMode = "recursive";
+    outputHashAlgo = "sha256";
+    outputHash     = "0q1vw6drpdrfifbm3266igpml0phdk6pl0gd3b5amysigx83m251";
   };
+in
+stdenv.mkDerivation rec {
+  name = "${baseName}-${version}";
 
-  unpackPhase = "tar xvzf $src";
+  buildInputs = [ jdk makeWrapper deps ];
 
-  installPhase = ''
-    mkdir -p "$out/bin"
-    mkdir -p "$out/lib"
+  doCheck = true;
 
-    cp cli/target/scala-2.11/scalafmt.jar "$out/lib/${name}.jar"
+  phases = [ "installPhase" "checkPhase" ];
 
-    cat > "$out/bin/${baseName}" << EOF
-    #!${stdenv.shell}
-    exec ${jre}/bin/java -jar "$out/lib/${name}.jar" "\$@"
-    EOF
+  installPhase = ''
+    makeWrapper ${jre}/bin/java $out/bin/${baseName} \
+      --add-flags "-cp $CLASSPATH org.scalafmt.cli.Cli"
+  '';
 
-    chmod a+x "$out/bin/${baseName}"
+  checkPhase = ''
+    $out/bin/${baseName} --version | grep -q "${version}"
   '';
 
   meta = with stdenv.lib; {