-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathgetLatestMinecraftServerJar.sh
More file actions
executable file
·40 lines (29 loc) · 1.24 KB
/
getLatestMinecraftServerJar.sh
File metadata and controls
executable file
·40 lines (29 loc) · 1.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/bin/bash
. $(dirname $0)/src/common.bash
function main {
MCJSON=$(curl -s $__MC_JSON_URL)
LATEST_VER=$(getJSONVal "$(getJSONData "$MCJSON" latest)" release)
LATEST_URL_DATA=$(echo $MCJSON | egrep -o "\"id\":\"${LATEST_VER}\"[^}]*")
LATEST_VER_URL=$(getJSONVal "$LATEST_URL_DATA" url)
MCURLJSON=$(curl -s $LATEST_VER_URL)
SERVER_JAR_NAME=minecraft_server_${LATEST_VER}.jar
SERVER_URL=$(getJSONVal "$(getJSONData "$MCURLJSON" server)" url)
SERVER_FILE_SHA1=$(getJSONVal "$(getJSONData "$MCURLJSON" server)" sha1)
LOCAL_FILE=$([[ -n $1 ]] && printf $1 || printf /tmp/$SERVER_JAR_NAME)
if [[ -a "${LOCAL_FILE}" ]]; then
printf "${LOCAL_FILE} exists -- moving to ${LOCAL_FILE}.old\n"
mv ${LOCAL_FILE} ${LOCAL_FILE}.old
fi
printf "\nDownloading ${SERVER_JAR_NAME} from ${SERVER_URL}..."
wget -q -O ${LOCAL_FILE} ${SERVER_URL}
printf "\nFile downloaded at: ${LOCAL_FILE}"
printf "\nChecking sha1sum of ${LOCAL_FILE}..."
DOWNLOAD_FILE_SHA1SUM=$(sha1sum ${LOCAL_FILE} | awk '{print $1}')
if [ $(sha1sum "${LOCAL_FILE}" | awk '{print $1}') != "${SERVER_FILE_SHA1}" ]; then
printf "\nSHA1 of downloaded file does not match!"
rm ${LOCAL_FILE}
else
printf "\nSHA1 matches!\n"
fi
}
main "$@"