summaryrefslogtreecommitdiffstats
path: root/pkgs/tools
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
parente25f5275d414f34f3a51808c080e0eda495f3146 (diff)
parente340e24d3a8c5f0579928d30c88695b7d821910a (diff)
Merge pull request #92582 from truh/plantuml-server-squash
Diffstat (limited to 'pkgs/tools')
-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 000000000000..11db08dd9735
--- /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 ];
+ };
+}