From 9fcb2cbbb76ccea250e09d1f3db74e144b16de5a Mon Sep 17 00:00:00 2001 From: Patrick Date: Mon, 21 Oct 2024 20:48:22 +0200 Subject: [PATCH] minion: init at 3.0.12 --- pkgs/by-name/mi/minion/package.nix | 73 ++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 pkgs/by-name/mi/minion/package.nix diff --git a/pkgs/by-name/mi/minion/package.nix b/pkgs/by-name/mi/minion/package.nix new file mode 100644 index 0000000000000..19cd5de8d4781 --- /dev/null +++ b/pkgs/by-name/mi/minion/package.nix @@ -0,0 +1,73 @@ +{ + stdenvNoCC, + lib, + fetchzip, + openjdk22, + makeDesktopItem, + javaPackages, + gsettings-desktop-schemas, + gtk3, +}: + +let + openjfx = javaPackages.openjfx22.override { withWebKit = true; }; + jdk = openjdk22.override ( + prev: + prev + // { + enableJavaFX = true; + inherit openjfx; + } + ); +in +stdenvNoCC.mkDerivation rec { + version = "3.0.12"; + pname = "minion"; + + src = fetchzip { + url = "https://cdn.mmoui.com/minion/v3/Minion${version}-java.zip"; + hash = "sha256-KjSj3TBMY3y5kgIywtIDeil0L17dau/Rb2HuXAulSO8="; + stripRoot = false; + }; + + installPhase = '' + mkdir -p "$out/bin" + mkdir -p "$out/lib/${pname}" + cp ./Minion-jfx.jar "$out/lib/${pname}/Minion-jfx.jar" + cp -r ./lib "$out/lib/${pname}/lib" + + cat > "$out/bin/${pname}" << EOF + #!${stdenvNoCC.shell} + CLASSPATH="$out/lib" + XDG_DATA_DIRS="${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:XDG_DATA_DIRS" + exec ${lib.getExe jdk} \ + --add-exports=javafx.graphics/com.sun.javafx.css=ALL-UNNAMED \ + --add-exports=javafx.graphics/javafx.scene.image=ALL-UNNAMED \ + --add-opens=javafx.graphics/javafx.scene.image=ALL-UNNAMED \ + --add-opens=java.base/java.lang=ALL-UNNAMED \ + -cp "$CLASSPATH ./lib" -jar "$out/lib/${pname}/Minion-jfx.jar" "\$@" + EOF + + chmod a+x "$out/bin/${pname}" + + ''; + + desktopItems = [ + (makeDesktopItem { + name = "minion"; + exec = "minion"; + comment = "MMO Addon manager for Elder Scrolls Online and World of Warcraft"; + desktopName = "Minion"; + categories = [ "Game" ]; + }) + ]; + + meta = with lib; { + description = "Addon manager for World of Warcraft and The Elder Scrolls Online"; + homepage = "https://minion.mmoui.com/"; + license = lib.licenses.unfree; + platforms = lib.platforms.all; + mainProgram = minion; + maintainers = with lib.maintainers; [ patrickdag ]; + }; +}