summary refs log tree commit diff
path: root/pkgs/tools/misc
diff options
context:
space:
mode:
authorDoron Behar <doron.behar@gmail.com>2020-12-16 22:02:57 +0200
committerGitHub <noreply@github.com>2020-12-16 22:02:57 +0200
commit749c9f1f19d40f3ae0ea8bc9e86a187a0e3949e1 (patch)
tree659f7e3de5912c8720f287b9d93e4daf173de81c /pkgs/tools/misc
parente25f5275d414f34f3a51808c080e0eda495f3146 (diff)
parente340e24d3a8c5f0579928d30c88695b7d821910a (diff)
downloadnixpkgs-749c9f1f19d40f3ae0ea8bc9e86a187a0e3949e1.tar
nixpkgs-749c9f1f19d40f3ae0ea8bc9e86a187a0e3949e1.tar.gz
nixpkgs-749c9f1f19d40f3ae0ea8bc9e86a187a0e3949e1.tar.bz2
nixpkgs-749c9f1f19d40f3ae0ea8bc9e86a187a0e3949e1.tar.lz
nixpkgs-749c9f1f19d40f3ae0ea8bc9e86a187a0e3949e1.tar.xz
nixpkgs-749c9f1f19d40f3ae0ea8bc9e86a187a0e3949e1.tar.zst
nixpkgs-749c9f1f19d40f3ae0ea8bc9e86a187a0e3949e1.zip
Merge pull request #92582 from truh/plantuml-server-squash
Diffstat (limited to 'pkgs/tools/misc')
-rw-r--r--pkgs/tools/misc/plantuml-server/default.nix58
1 files changed, 58 insertions, 0 deletions
diff --git a/pkgs/tools/misc/plantuml-server/default.nix b/pkgs/tools/misc/plantuml-server/default.nix
new file mode 100644
index 00000000000..11db08dd973
--- /dev/null
+++ b/pkgs/tools/misc/plantuml-server/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchFromGitHub, maven, jdk }:
+
+let
+  version = "1.2020.14";
+
+  src = fetchFromGitHub {
+    owner = "plantuml";
+    repo = "plantuml-server";
+    rev = "v${version}";
+    sha256 = "08g6ddpkly5yhjhw7gpsanyspar1752jy9cypwxsqrdzqrv738b8";
+  };
+
+  # perform fake build to make a fixed-output derivation out of the files downloaded from maven central
+  deps = stdenv.mkDerivation {
+    name = "plantuml-server-${version}-deps";
+    inherit src;
+    buildInputs = [ jdk maven ];
+    buildPhase = ''
+      while mvn package -Dmaven.repo.local=$out/.m2; [ $? = 1 ]; do
+        echo "timeout, restart maven to continue downloading"
+      done
+    '';
+    # keep only *.{pom,jar,sha1,nbm} and delete all ephemeral files with lastModified timestamps inside
+    installPhase = ''find $out/.m2 -type f -regex '.+\(\.lastUpdated\|resolver-status\.properties\|_remote\.repositories\)' -delete'';
+    outputHashAlgo = "sha256";
+    outputHashMode = "recursive";
+    outputHash = "1wwgyjalhlj5azggs9vvsrr54pg7gl8p36pgf6pk12rsszzl7a97";
+  };
+in
+
+stdenv.mkDerivation rec {
+  pname = "plantuml-server";
+  inherit version;
+  inherit src;
+
+  buildInputs = [ jdk maven ];
+
+  buildPhase = ''
+    # 'maven.repo.local' must be writable so copy it out of nix store
+    cp -R $src repo
+    chmod +w -R repo
+    cd repo
+    mvn package --offline -Dmaven.repo.local=$(cp -dpR ${deps}/.m2 ./ && chmod +w -R .m2 && pwd)/.m2
+  '';
+
+  installPhase = ''
+    mkdir -p "$out/webapps"
+    cp "target/plantuml.war" "$out/webapps/plantuml.war"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A web application to generate UML diagrams on-the-fly.";
+    homepage = "https://plantuml.com/";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ truh ];
+  };
+}