2025-01-05 11:23:12 -08:00

174 lines
3.5 KiB
Nix

{
lib,
stdenv,
runCommand,
megacmd,
unzip,
makeWrapper,
autoPatchelfHook,
makeDesktopItem,
copyDesktopItems,
libgcc,
dbus,
xorg_sys_opengl,
systemd,
libcap,
libdrm,
pulseaudio,
libsndfile,
flac,
libvorbis,
libopus,
mpg123,
lame,
libGL,
vulkan-loader,
libasyncns,
xorg,
}:
let
pname = "legends-of-equestria";
version = "2024.06.02";
description = "Free-to-play MMORPG";
srcOptions = {
x86_64-linux = {
url = "https://mega.nz/file/Z3oAGYDa#01EfQICR4k5BK56hWFckYKsfgdV36KoU91TvSBwKgxY";
outputHash = "vpVIaRPrZih+ydWszsBF/JgO0AXh2rF/yOpBuI+V0m4=";
};
x86_64-darwin = {
url = "https://mega.nz/file/p6JQUDYC#lBRUK7lmxMHh4OvEyKjfl0W1mOL2VVzAH9rXL5ViiN0";
outputHash = "bvFg4wjltiilCP1oKfgUWThcEq8tzCIP3W/eAd3SxFo=";
};
aarch64-darwin = {
url = "https://mega.nz/file/cvxSzZ4b#eJHLvVHz_zxBiRxGMCBcsl1gV6M6ebQf2tQbNpEqCvk";
outputHash = "1aZGuOgXTLFxwF2FcYEwKA/LRT26uiXupBoqmzq9pFM=";
};
};
runtimeDeps =
[
dbus.lib
xorg_sys_opengl
systemd
libcap.lib
libdrm
pulseaudio
libsndfile
flac
libvorbis
mpg123
lame.lib
libGL
vulkan-loader
libasyncns
]
++ (with xorg; [
libX11
libxcb
libXau
libXdmcp
libXext
libXcursor
libXrender
libXfixes
libXinerama
libXi
libXrandr
libXScrnSaver
]);
in
stdenv.mkDerivation {
inherit pname version;
src =
runCommand "mega-loe"
(
srcOptions.${stdenv.hostPlatform.system}
// {
pname = "${pname}-source";
inherit version;
nativeBuildInputs = [
megacmd
unzip
];
outputHashAlgo = "sha256";
outputHashMode = "recursive";
}
)
''
export HOME=$(mktemp -d)
dest=$HOME/mega-loe
mkdir -p $dest
mega-get "$url" $dest
mkdir -p $out
unzip -d $out $dest/*.zip
'';
dontBuild = true;
buildInputs = [
libgcc
];
nativeBuildInputs =
[
makeWrapper
]
++ lib.optionals stdenv.hostPlatform.isLinux [
copyDesktopItems
autoPatchelfHook
];
installPhase =
if stdenv.hostPlatform.isLinux then
''
runHook preInstall
loeHome=$out/lib/${pname}
mkdir -p $loeHome
cp -r Linux/* $loeHome
makeWrapper $loeHome/LoE.x86_64 $out/bin/LoE \
--suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}"
icon=$out/share/icons/hicolor/128x128/apps/legends-of-equestria.png
mkdir -p $(dirname $icon)
ln -s $loeHome/LoE_Data/Resources/UnityPlayer.png $icon
runHook postInstall
''
else
''
runHook preInstall
mkdir -p $out/Applications
cp -r *.app $out/Applications
runHook postInstall
'';
passthru.updateScript = ./update.sh;
desktopItems = [
(makeDesktopItem {
name = "legends-of-equestria";
comment = description;
desktopName = "Legends of Equestria";
genericName = "Legends of Equestria";
exec = "LoE";
icon = "legends-of-equestria";
categories = [ "Game" ];
})
];
meta = {
inherit description;
license = lib.licenses.unfree;
platforms = lib.attrNames srcOptions;
maintainers = with lib.maintainers; [ ulysseszhan ];
mainProgram = "LoE";
homepage = "https://www.legendsofequestria.com";
downloadPage = "https://www.legendsofequestria.com/downloads";
};
}