From e76286214d792a792f1285675c0f291701b78281 Mon Sep 17 00:00:00 2001 From: Finn Behrens Date: Thu, 21 May 2020 14:33:15 +0200 Subject: [PATCH 1/2] minecraft-server: add update script --- pkgs/games/minecraft-server/default.nix | 8 +++++--- pkgs/games/minecraft-server/update.sh | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) create mode 100755 pkgs/games/minecraft-server/update.sh diff --git a/pkgs/games/minecraft-server/default.nix b/pkgs/games/minecraft-server/default.nix index 956fbdf3aae39..d0ae0a5971760 100644 --- a/pkgs/games/minecraft-server/default.nix +++ b/pkgs/games/minecraft-server/default.nix @@ -4,9 +4,9 @@ stdenv.mkDerivation { version = "1.15.2"; src = fetchurl { - url = - "https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar"; - sha256 = "12kynrpxgcdg8x12wcvwkxka0fxgm5siqg8qq0nnmv0443f8dkw0"; + url = "https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar"; + # sha1 because that comes from mojang via api + sha1 = "bb2b6b1aefcd70dfd1892149ac3a215f6c636b07"; }; preferLocalBuild = true; @@ -25,6 +25,8 @@ stdenv.mkDerivation { phases = "installPhase"; + passthru.updateScript = ./update.sh; + meta = with stdenv.lib; { description = "Minecraft Server"; homepage = "https://minecraft.net"; diff --git a/pkgs/games/minecraft-server/update.sh b/pkgs/games/minecraft-server/update.sh new file mode 100755 index 0000000000000..b065fbf2985ad --- /dev/null +++ b/pkgs/games/minecraft-server/update.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl jq common-updater-scripts + +# get current release version +versions=$(curl -s 'https://launchermeta.mojang.com/mc/game/version_manifest.json') +version=$(echo $versions | jq .latest.release) +url=$(echo $versions | jq -r ".versions[] | select(.id == $version) | .url") + +# get current server.jar +versions=$(curl -s $url | jq .downloads.server) +sha1=$(echo $versions | jq .sha1) +url=$(echo $versions | jq .url) + +echo $version: $url:$sha1 + +# change default.nix +sed -i "s/version = \"[0-9.]*\";/version = ${version};/g" default.nix +sed -i "s+url = \"[a-zA-Z0-9/:.]*/server.jar\";+url = $url;+g" default.nix +sed -i "s/sha1 = \"[a-zA-Z0-9]*\";/sha1 = ${sha1};/g" default.nix From b96e5f5d50bd0f9d2d82d42732c4e07cba7c0fc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milan=20P=C3=A4ssler?= Date: Mon, 1 Jun 2020 15:45:59 +0200 Subject: [PATCH 2/2] minecraft-server: allow update script to be called from nixpkgs root --- pkgs/games/minecraft-server/update.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/games/minecraft-server/update.sh b/pkgs/games/minecraft-server/update.sh index b065fbf2985ad..433a12a9caf62 100755 --- a/pkgs/games/minecraft-server/update.sh +++ b/pkgs/games/minecraft-server/update.sh @@ -1,6 +1,8 @@ #!/usr/bin/env nix-shell #!nix-shell -i bash -p curl jq common-updater-scripts +BASEDIR="$(dirname "$0")" + # get current release version versions=$(curl -s 'https://launchermeta.mojang.com/mc/game/version_manifest.json') version=$(echo $versions | jq .latest.release) @@ -14,6 +16,6 @@ url=$(echo $versions | jq .url) echo $version: $url:$sha1 # change default.nix -sed -i "s/version = \"[0-9.]*\";/version = ${version};/g" default.nix -sed -i "s+url = \"[a-zA-Z0-9/:.]*/server.jar\";+url = $url;+g" default.nix -sed -i "s/sha1 = \"[a-zA-Z0-9]*\";/sha1 = ${sha1};/g" default.nix +sed -i "s/version = \"[0-9.]*\";/version = ${version};/g" "$BASEDIR/default.nix" +sed -i "s+url = \"[a-zA-Z0-9/:.]*/server.jar\";+url = $url;+g" "$BASEDIR/default.nix" +sed -i "s/sha1 = \"[a-zA-Z0-9]*\";/sha1 = ${sha1};/g" "$BASEDIR/default.nix"