nixpkgs/pkgs/by-name/at/atlauncher/package.nix
GetPsyched 74e18ebb62
atlauncher: add options and missing libs
Co-authored-by: eljamm <fedi.jamoussi@protonmail.ch>
2024-05-16 17:21:50 +05:30

91 lines
2.3 KiB
Nix

{ copyDesktopItems
, fetchurl
, jre
, lib
, makeDesktopItem
, makeWrapper
, stdenv
, gamemodeSupport ? stdenv.isLinux
, textToSpeechSupport ? stdenv.isLinux
, additionalLibs ? [ ]
, # dependencies
flite
, gamemode
, libglvnd
, libpulseaudio
, udev
, xorg
}:
stdenv.mkDerivation (finalAttrs: {
pname = "atlauncher";
version = "3.4.36.4";
src = fetchurl {
url = "https://github.com/ATLauncher/ATLauncher/releases/download/v${finalAttrs.version}/ATLauncher-${finalAttrs.version}.jar";
hash = "sha256-7l4D99rTOP+oyaa+O8GPGugr3Nv8EIt6EqK1L9ttFBA=";
};
env.ICON = fetchurl {
url = "https://atlauncher.com/assets/images/logo.svg";
hash = "sha256-XoqpsgLmkpa2SdjZvPkgg6BUJulIBIeu6mBsJJCixfo=";
};
dontUnpack = true;
nativeBuildInputs = [ copyDesktopItems makeWrapper ];
installPhase =
let
runtimeLibraries = [
libglvnd
libpulseaudio
udev
xorg.libXxf86vm
]
++ lib.optional gamemodeSupport gamemode.lib
++ lib.optional textToSpeechSupport flite
++ additionalLibs;
in
''
runHook preInstall
mkdir -p $out/bin $out/share/java
cp $src $out/share/java/ATLauncher.jar
makeWrapper ${jre}/bin/java $out/bin/atlauncher \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeLibraries}" \
--add-flags "-jar $out/share/java/ATLauncher.jar" \
--add-flags "--working-dir \"\''${XDG_DATA_HOME:-\$HOME/.local/share}/ATLauncher\"" \
--add-flags "--no-launcher-update"
mkdir -p $out/share/icons/hicolor/scalable/apps
cp $ICON $out/share/icons/hicolor/scalable/apps/atlauncher.svg
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
categories = [ "Game" ];
desktopName = "ATLauncher";
exec = "atlauncher";
icon = "atlauncher";
name = "atlauncher";
})
];
meta = with lib; {
description = "A simple and easy to use Minecraft launcher which contains many different modpacks for you to choose from and play";
downloadPage = "https://atlauncher.com/downloads";
homepage = "https://atlauncher.com";
license = licenses.gpl3;
mainProgram = "atlauncher";
maintainers = [ maintainers.getpsyched ];
platforms = platforms.all;
sourceProvenance = [ sourceTypes.binaryBytecode ];
};
})