nix-config/pkgs/minion.nix

74 lines
1.9 KiB
Nix
Raw Permalink Normal View History

{
stdenvNoCC,
lib,
fetchzip,
2024-11-03 21:34:38 +01:00
openjdk21,
makeDesktopItem,
javaPackages,
gsettings-desktop-schemas,
gtk3,
}:
let
2024-11-03 21:34:38 +01:00
openjfx = javaPackages.openjfx21.override { withWebKit = true; };
jdk = openjdk21.override (
prev:
prev
// {
enableJavaFX = true;
2024-11-03 21:34:38 +01:00
openjfx_jdk = openjfx;
}
);
in
stdenvNoCC.mkDerivation rec {
version = "3.0.12";
pname = "minion";
src = fetchzip {
2024-10-23 14:42:36 +02:00
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"
2024-10-23 14:42:36 +02:00
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; {
2024-10-23 14:42:36 +02:00
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 ];
};
}