From dc290582eb41c949f5852c0950f3f30fdb492b9e Mon Sep 17 00:00:00 2001 From: Ben Pflueg Date: Mon, 1 Oct 2018 19:44:06 +0200 Subject: [PATCH] Fix downloading latest file for minecraft jargroup - Use 'jq' as json interpreter instead of grep regex - Use latest package format --- init/msm | 10 +++++----- installers/arch.sh | 2 +- installers/debian.sh | 4 +++- installers/redhat.sh | 2 +- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/init/msm b/init/msm index b36a239..f32cd66 100755 --- a/init/msm +++ b/init/msm @@ -1110,13 +1110,13 @@ jargroup_getlatest() { local versions_url="https://launchermeta.mojang.com/mc/game/version_manifest.json" local versions_file="/tmp/minecraft_versions.json" as_user "$SETTINGS_USERNAME" "wget --quiet $wget_opts --no-check-certificate -O '$versions_file' '$versions_url'" - local latest_package_url=$(as_user "$SETTINGS_USERNAME" "egrep -o "\""(\{[^}]*\\"\"type\\"\"\:\\"\"${versions_target}\\"\"[^}]*\})"\"" $versions_file | egrep -o -m1 'https\\:\\/\\/launchermeta\\.mojang\\.com[^\"]*'") + local latest_package_url=$(as_user "$SETTINGS_USERNAME" "cat $versions_file | jq -r '.versions | sort_by(.releaseTime) | map(select(.type | contains ("\""release"\""))) | last | .url'") local latest_version=$(as_user "$SETTINGS_USERNAME" "echo ${latest_package_url##*/} | sed s/.json//") - if [[ -n "$latest_package_url" ]]; then - local package_file="/tmp/minecraft_package.json" - as_user "$SETTINGS_USERNAME" "wget --quiet $wget_opts --no-check-certificate -O '$package_file' '$latest_package_url'" - local jar_url=$(as_user "$SETTINGS_USERNAME" "egrep -o -m1 'https.*server\\.jar' $package_file") + if [[ -n "$latest_package_url" ]]; then + local package_file="/tmp/minecraft_package.json" + as_user "$SETTINGS_USERNAME" "wget --quiet $wget_opts --no-check-certificate -O '$package_file' '$latest_package_url'" + local jar_url=$(as_user "$SETTINGS_USERNAME" "cat $package_file | jq -r '.downloads.server.url'") fi fi diff --git a/installers/arch.sh b/installers/arch.sh index 60bac12..2f2b85c 100755 --- a/installers/arch.sh +++ b/installers/arch.sh @@ -9,7 +9,7 @@ function update_system_packages() { function install_dependencies() { install_log "Installing required packages" - sudo pacman --noconfirm -S screen rsync zip wget || install_error "Couldn't install dependencies" + sudo pacman --noconfirm -S screen rsync zip wget jq || install_error "Couldn't install dependencies" } function enable_init() { diff --git a/installers/debian.sh b/installers/debian.sh index e29b5e6..8821184 100755 --- a/installers/debian.sh +++ b/installers/debian.sh @@ -1,3 +1,5 @@ +#!/bin/bash + UPDATE_URL="https://raw.githubusercontent.com/msmhq/msm/master" wget -q ${UPDATE_URL}/installers/common.sh -O /tmp/msmcommon.sh source /tmp/msmcommon.sh && rm -f /tmp/msmcommon.sh @@ -10,7 +12,7 @@ function update_system_packages() { function install_dependencies() { install_log "Installing required packages" - sudo apt-get install screen rsync zip || install_error "Couldn't install dependencies" + sudo apt-get install screen rsync zip jq || install_error "Couldn't install dependencies" } function enable_init() { diff --git a/installers/redhat.sh b/installers/redhat.sh index 7d64a3c..cc7ea2c 100755 --- a/installers/redhat.sh +++ b/installers/redhat.sh @@ -9,7 +9,7 @@ function update_system_packages() { function install_dependencies() { install_log "Installing required packages" - sudo yum install screen rsync zip java || install_error "Couldn't install dependencies" + sudo yum install screen rsync zip java jq || install_error "Couldn't install dependencies" } function enable_init() {