]> Frank Brehm's Git Trees - pixelpark/admin-tools.git/commitdiff
Detecting current version of minecraft server
authorFrank Brehm <frank@brehm-online.com>
Sun, 18 Apr 2021 13:03:52 +0000 (15:03 +0200)
committerFrank Brehm <frank@brehm-online.com>
Sun, 18 Apr 2021 13:03:52 +0000 (15:03 +0200)
bin/update-minecraft-server-jar

index 17f6fb935c91d55a178d8ba6869372414801e327..2264825a7b8e363d20e95f10a17639ca8aafd487 100755 (executable)
@@ -22,6 +22,7 @@ MC_ROOT_DIR="/home/minecraft"
 MC_BACKUP_DIR="${MC_ROOT_DIR}/backup"
 MC_SERVER_DIR="${MC_ROOT_DIR}/server"
 SERVER_JAR="${MC_SERVER_DIR}/minecraft_server.jar"
+MC_SERVER_CUR_LINK_BASE="minecraft_server.current.jar"
 
 VERSION_MANIFEST='https://launchermeta.mojang.com/mc/game/version_manifest.json'
 
@@ -124,6 +125,30 @@ check_preferences() {
 
 }
 
+#------------------------------------------------------------------------------
+detecting_cur_version() {
+
+    info "Trying to detect current version of Minecraft server."
+
+    cd "${MC_BACKUP_DIR}"
+    debug "Checking symlink '${CYAN}${MC_SERVER_CUR_LINK_BASE}${NORMAL}' ..."
+    if [[ ! -e "${MC_SERVER_CUR_LINK_BASE}" ]] ; then
+        warn "Symlink '${YELLOW}${MC_BACKUP_DIR}/${MC_SERVER_CUR_LINK_BASE}${NORMAL}' does not exists or is invalid."
+        return 0
+    fi
+    if [[ ! -h "${MC_SERVER_CUR_LINK_BASE}" ]] ; then
+        error "Path '${RED}{MC_BACKUP_DIR}/${MC_SERVER_CUR_LINK_BASE}${NORMAL}' is not a symlink."
+        exit 5
+    fi
+
+    local link_target=$( readlink -e "${MC_SERVER_CUR_LINK_BASE}" )
+    local link_target_base=$( basename "${link_target}" )
+    CURRENT_VERSION=$( echo "${link_target_base}" | sed -e "s/^minecraft_server\.//" -e 's/\.jar//' )
+
+    info "Current version of minecraft server is '${GREEN}${CURRENT_VERSION}${NORMAL}'."
+
+}
+
 #------------------------------------------------------------------------------
 main() {
 
@@ -131,6 +156,8 @@ main() {
     umask 0022
 
     check_preferences
+    detecting_cur_version
+
 }
 
 main "$@"