From e340e24d3a8c5f0579928d30c88695b7d821910a Mon Sep 17 00:00:00 2001 From: Jakob Klepp Date: Wed, 8 Jul 2020 17:55:37 +0200 Subject: plantuml-server: init at 1.2020.14 --- pkgs/tools/misc/plantuml-server/default.nix | 58 +++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 pkgs/tools/misc/plantuml-server/default.nix (limited to 'pkgs/tools') diff --git a/pkgs/tools/misc/plantuml-server/default.nix b/pkgs/tools/misc/plantuml-server/default.nix new file mode 100644 index 0000000000000..11db08dd97350 --- /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 ]; + }; +} -- cgit 1.4.1