Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / games / purpur / default.nix
blob33ec936dc63d669e154178631639f8e2f924d00b
1 { lib, stdenv, fetchurl, nixosTests, jre_headless, makeWrapper }:
3 stdenv.mkDerivation rec {
4   pname = "purpur";
5   version = "1.19.2r1763";
7   src = fetchurl {
8     url = "https://api.purpurmc.org/v2/purpur/${builtins.replaceStrings [ "r" ] [ "/" ] version}/download";
9     sha256 = "sha256-6wcCwVIGV32YQlgB57qthy6uWtuXGN4G8S7uAAgVyDE=";
10   };
12   nativeBuildInputs = [ makeWrapper ];
14   preferLocalBuild = true;
16   installPhase = ''
17     mkdir -p $out/bin $out/lib/minecraft
18     cp -v $src $out/lib/minecraft/server.jar
20     makeWrapper ${jre_headless}/bin/java $out/bin/minecraft-server \
21       --add-flags "-jar $out/lib/minecraft/server.jar nogui"
22   '';
24   dontUnpack = true;
26   passthru = {
27     tests = { inherit (nixosTests) minecraft-server; };
28   };
30   meta = with lib; {
31     description = "A drop-in replacement for Minecraft Paper servers";
32     longDescription = ''
33       Purpur is a drop-in replacement for Minecraft Paper servers designed for configurability, new fun and exciting
34       gameplay features, and performance built on top of Airplane.
35     '';
36     homepage = "https://purpurmc.org/";
37     sourceProvenance = with sourceTypes; [ binaryBytecode ];
38     license = licenses.mit;
39     platforms = platforms.unix;
40     maintainers = with maintainers; [ joelkoen ];
41     mainProgram = "minecraft-server";
42   };