diff options
author | Gerg-L <GregLeyda@proton.me> | 2023-10-13 20:23:03 -0400 |
---|---|---|
committer | Gerg-L <GregLeyda@proton.me> | 2023-10-13 20:23:03 -0400 |
commit | d0bb02b106d4fb00445e71253df34497ffd556cc (patch) | |
tree | efb870d899b3d02552ffd07bd23e8323da0f9f2c /pkgs/games/papermc | |
parent | de711334a3a5ce8e166a1a061f59482ba6272893 (diff) |
papermc: refactor
Diffstat (limited to 'pkgs/games/papermc')
-rw-r--r-- | pkgs/games/papermc/default.nix | 60 |
1 files changed, 35 insertions, 25 deletions
diff --git a/pkgs/games/papermc/default.nix b/pkgs/games/papermc/default.nix index 2fa4545362daf..241d814cbbe21 100644 --- a/pkgs/games/papermc/default.nix +++ b/pkgs/games/papermc/default.nix @@ -1,40 +1,50 @@ -{ lib, stdenv, fetchurl, bash, jre }: - -stdenv.mkDerivation rec { +{ + lib, + stdenvNoCC, + fetchurl, + jre, + makeBinaryWrapper, +}: +stdenvNoCC.mkDerivation (finalAttrs: { pname = "papermc"; version = "1.20.1.83"; - jar = let - mcVersion = lib.versions.pad 3 version; - buildNum = builtins.elemAt (lib.versions.splitVersion version) 3; - in fetchurl { - url = "https://papermc.io/api/v2/projects/paper/versions/${mcVersion}/builds/${buildNum}/downloads/paper-${mcVersion}-${buildNum}.jar"; - sha256 = "sha256-HQpc3MOXa1wkXqgm9ciQj04FUIyuupnYiu+2RZ/sXE4="; - }; + src = + let + mcVersion = lib.versions.pad 3 finalAttrs.version; + buildNum = builtins.elemAt (lib.splitVersion finalAttrs.version) 3; + in + fetchurl { + url = "https://papermc.io/api/v2/projects/paper/versions/${mcVersion}/builds/${buildNum}/downloads/paper-${mcVersion}-${buildNum}.jar"; + hash = "sha256-HQpc3MOXa1wkXqgm9ciQj04FUIyuupnYiu+2RZ/sXE4="; + }; - preferLocalBuild = true; + installPhase = '' + runHook preInstall - dontUnpack = true; - dontConfigure = true; + install -D $src $out/share/papermc/papermc.jar - buildPhase = '' - cat > minecraft-server << EOF - #!${bash}/bin/sh - exec ${jre}/bin/java \$@ -jar $out/share/papermc/papermc.jar nogui - ''; + makeWrapper ${lib.getExe jre} "$out/bin/minecraft-server" \ + --append-flags "-jar $out/share/papermc/papermc.jar nogui" - installPhase = '' - install -Dm444 ${jar} $out/share/papermc/papermc.jar - install -Dm555 -t $out/bin minecraft-server + runHook postInstall ''; + nativeBuildInputs = [ + makeBinaryWrapper + ]; + + dontUnpack = true; + preferLocalBuild = true; + allowSubstitutes = false; + meta = { description = "High-performance Minecraft Server"; - homepage = "https://papermc.io/"; + homepage = "https://papermc.io/"; sourceProvenance = with lib.sourceTypes; [ binaryBytecode ]; - license = lib.licenses.gpl3Only; - platforms = lib.platforms.unix; + license = lib.licenses.gpl3Only; + platforms = lib.platforms.unix; maintainers = with lib.maintainers; [ aaronjanse neonfuz ]; mainProgram = "minecraft-server"; }; -} +}) |