11 stdenv.mkDerivation rec {
12 pname = "structorizer";
18 name = "Structorizer";
19 desktopName = "Structorizer";
20 genericName = "Diagram creator";
21 comment = meta.description;
25 mimeTypes = [ "application/nsd" ];
33 keywords = [ "nsd" "diagrams" ];
37 src = fetchFromGitHub {
39 repo = "Structorizer.Desktop";
41 hash = "sha256-kFgypwSmXRkIyb0ZMcoTSgQdODfn9F81ABlFWATvh3M=";
44 patches = [ ./makeStructorizer.patch ./makeBigJar.patch ];
48 nativeBuildInputs = [ jdk11 makeWrapper copyDesktopItems ];
50 buildInputs = [ jdk11 ];
53 chmod +x makeStructorizer
56 patchShebangs --build makeStructorizer
57 patchShebangs --build makeBigJar
72 install -d $out/bin $out/share/mime/packages
74 install -D ${pname}.jar -t $out/share/java/
75 makeWrapper ${jdk11}/bin/java $out/bin/${pname} \
76 --add-flags "-jar $out/share/java/${pname}.jar"
78 cat << EOF > $out/share/mime/packages/structorizer.xml
79 <?xml version="1.0" encoding="UTF-8"?>
80 <mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
81 <mime-type type="application/nsd">
82 <comment xml:lang="en">Nassi-Shneiderman diagram</comment>
83 <comment xml:lang="de">Nassi-Shneiderman-Diagramm</comment>
84 <glob pattern="*.nsd"/>
89 cd src/lu/fisch/${pname}/gui
90 install -vD icons/000_${pname}.png $out/share/icons/hicolor/16x16/apps/${pname}.png
91 for icon_width in 24 32 48 64 128 256; do
92 install -vD icons_"$icon_width"/000_${pname}.png $out/share/icons/hicolor/"$icon_width"x"$icon_width"/apps/${pname}.png
98 passthru.updateScript = nix-update-script { };
101 description = "Create Nassi-Shneiderman diagrams (NSD)";
102 homepage = "https://structorizer.fisch.lu";
103 license = licenses.gpl3Plus;
104 platforms = platforms.all;
105 maintainers = with maintainers; [ annaaurora ];
106 mainProgram = "structorizer";