61 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  lib,
 | 
						|
  stdenvNoCC,
 | 
						|
  fetchurl,
 | 
						|
  graphviz,
 | 
						|
  jre,
 | 
						|
  makeBinaryWrapper,
 | 
						|
  testers,
 | 
						|
}:
 | 
						|
 | 
						|
stdenvNoCC.mkDerivation (finalAttrs: {
 | 
						|
  pname = "plantuml";
 | 
						|
  version = "1.2025.0";
 | 
						|
 | 
						|
  src = fetchurl {
 | 
						|
    url = "https://github.com/plantuml/plantuml/releases/download/v${finalAttrs.version}/plantuml-pdf-${finalAttrs.version}.jar";
 | 
						|
    hash = "sha256-tHlhO7+q/iG5jbivTzQtvaOiDXoIEC/thA2nJnS6Kak=";
 | 
						|
  };
 | 
						|
 | 
						|
  nativeBuildInputs = [
 | 
						|
    makeBinaryWrapper
 | 
						|
  ];
 | 
						|
 | 
						|
  buildCommand = ''
 | 
						|
    install -Dm644 $src $out/lib/plantuml.jar
 | 
						|
 | 
						|
    mkdir -p $out/bin
 | 
						|
    makeWrapper ${jre}/bin/java $out/bin/plantuml \
 | 
						|
      --argv0 plantuml \
 | 
						|
      --set GRAPHVIZ_DOT ${graphviz}/bin/dot \
 | 
						|
      --add-flags "-jar $out/lib/plantuml.jar"
 | 
						|
  '';
 | 
						|
 | 
						|
  doInstallCheck = true;
 | 
						|
 | 
						|
  postCheckInstall = ''
 | 
						|
    $out/bin/plantuml -help
 | 
						|
    $out/bin/plantuml -testdot
 | 
						|
  '';
 | 
						|
 | 
						|
  passthru.tests.version = testers.testVersion {
 | 
						|
    package = finalAttrs.finalPackage;
 | 
						|
    command = "plantuml --version";
 | 
						|
  };
 | 
						|
 | 
						|
  meta = {
 | 
						|
    description = "Draw UML diagrams using a simple and human readable text description";
 | 
						|
    homepage = "https://plantuml.com/";
 | 
						|
    # "plantuml -license" says GPLv3 or later
 | 
						|
    license = lib.licenses.gpl3Plus;
 | 
						|
    mainProgram = "plantuml";
 | 
						|
    maintainers = with lib.maintainers; [
 | 
						|
      bjornfor
 | 
						|
      Mogria
 | 
						|
      anthonyroussel
 | 
						|
    ];
 | 
						|
    platforms = lib.platforms.unix;
 | 
						|
    sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
 | 
						|
  };
 | 
						|
})
 |