Fix self-updates
This commit is contained in:
parent
d219c5c2cc
commit
0289b5dc49
@ -1,3 +1,3 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
EXTRA_SCRIPTS_VERSION="v1.0.3"
|
EXTRA_SCRIPTS_VERSION="v1.0.0"
|
||||||
|
BIN
ms-man-helper.tar.gz
Normal file
BIN
ms-man-helper.tar.gz
Normal file
Binary file not shown.
51
ms-manager/detect_server.sh
Normal file
51
ms-manager/detect_server.sh
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
# Detect the server type
|
||||||
|
function get_existing_server {
|
||||||
|
if ls paper-*.jar 1> /dev/null 2>&1; then
|
||||||
|
existing_server_type="paper"
|
||||||
|
get_existing_paper
|
||||||
|
# TODO: Add support for other server types
|
||||||
|
# elif ls fabric-*.jar 1> /dev/null 2>&1; then
|
||||||
|
# existing_server_type="fabric"
|
||||||
|
# elif ls spigot-*.jar 1> /dev/null 2>&1; then
|
||||||
|
# existing_server_type="spigot"
|
||||||
|
# elif ls craftbukkit-*.jar 1> /dev/null 2>&1; then
|
||||||
|
# existing_server_type="craftbukkit"
|
||||||
|
# elif ls vanilla-*.jar 1> /dev/null 2>&1; then
|
||||||
|
# existing_server_type="vanilla"
|
||||||
|
else
|
||||||
|
if ! ls *.jar 1> /dev/null 2>&1; then
|
||||||
|
echo "No server file found."
|
||||||
|
echo
|
||||||
|
echo
|
||||||
|
existing_server_type=false
|
||||||
|
server_file=false
|
||||||
|
else
|
||||||
|
>&2 echo "$(ls *.jar) file was found."
|
||||||
|
>&2 echo "Unknown server type."
|
||||||
|
exit 10
|
||||||
|
# TODO: Ask the user if they want to continue
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get existing version and build of paper
|
||||||
|
function get_existing_paper {
|
||||||
|
# Get the current server file name
|
||||||
|
server_file=$(basename ./paper-*.jar)
|
||||||
|
|
||||||
|
# Extract the version and build number using cut command
|
||||||
|
current_version=$(echo "$server_file" | cut -d'-' -f2)
|
||||||
|
current_build=$(echo "$server_file" | cut -d'-' -f3)
|
||||||
|
# Remove the rest of the file names
|
||||||
|
current_version="${current_version%-*}"
|
||||||
|
current_build="${current_build%.jar}"
|
||||||
|
|
||||||
|
echo "Current server file: $server_file"
|
||||||
|
echo " - Version $current_version"
|
||||||
|
echo " - Build $current_build"
|
||||||
|
echo
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
192
ms-manager/java.sh
Normal file
192
ms-manager/java.sh
Normal file
@ -0,0 +1,192 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
# Setup Java
|
||||||
|
function setup_java {
|
||||||
|
# Get the required Java version for the Minecraft version
|
||||||
|
get_required_java
|
||||||
|
|
||||||
|
# Check if java was downloaded by the script
|
||||||
|
check_script_java
|
||||||
|
|
||||||
|
# Check if java is installed
|
||||||
|
if [[ $java_version == false ]]; then
|
||||||
|
check_java_exec
|
||||||
|
if [[ $java_version != false ]]; then
|
||||||
|
echo "System Java $java_version will be used."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $java_version == false ]]; then
|
||||||
|
>&2 echo "Java $required_java is not installed."
|
||||||
|
>&2 echo "Java $required_java is required to run Minecraft $version."
|
||||||
|
# Ask the user if they want to download Adoptium JRE
|
||||||
|
ask_jre
|
||||||
|
fi
|
||||||
|
echo
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
|
# Ask the user if they want to download Adoptium JRE
|
||||||
|
function ask_jre {
|
||||||
|
echo "This script can download the correct Adoptium JRE into '$(echo $HOME)/.adoptium_java' for you."
|
||||||
|
echo "You have 15 seconds to confirm or the script will exit."
|
||||||
|
read -t 12 -p "Do you want to download Adoptium JRE? (y/N)" download_java
|
||||||
|
|
||||||
|
if [[ $download_java == "y" ]] || [[ $download_java == "Y" ]]; then
|
||||||
|
get_os_arch
|
||||||
|
download_jre
|
||||||
|
check_script_java
|
||||||
|
if [[ $java_version == false ]]; then
|
||||||
|
>&2 echo "Java $required_java was not downloaded correctly."
|
||||||
|
>&2 echo "Please install Java $required_java manually."
|
||||||
|
exit 4
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
>&2 echo "Please install Java $required_java and run this script again."
|
||||||
|
exit 12
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check if java was downloaded by the script
|
||||||
|
function check_script_java {
|
||||||
|
if [[ -d "$(echo $HOME)/.adoptium_java" ]]; then
|
||||||
|
if [[ $required_java == "8" ]]; then
|
||||||
|
if [[ -d "$(echo $HOME)/.adoptium_java/jre8" ]]; then
|
||||||
|
java_version=8
|
||||||
|
if [[ -f "$(echo $HOME).adoptium_java/jre8/bin/java" ]]; then
|
||||||
|
PATH="$(echo $HOME)/.adoptium_java/jre8/bin:$PATH"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
elif [[ $required_java == "11" ]]; then
|
||||||
|
if [[ -d "$(echo $HOME)/.adoptium_java/jre11" ]]; then
|
||||||
|
java_version=11
|
||||||
|
PATH="$(echo $HOME)/.adoptium_java/jre11/bin:$PATH"
|
||||||
|
fi
|
||||||
|
elif [[ $required_java == "16" ]]; then
|
||||||
|
if [[ -d "$(echo $HOME)/.adoptium_java/jre16" ]]; then
|
||||||
|
java_version=16
|
||||||
|
PATH="$(echo $HOME)/.adoptium_java/jre16/bin:$PATH"
|
||||||
|
fi
|
||||||
|
elif [[ $required_java == "17" ]]; then
|
||||||
|
if [[ -d "$(echo $HOME)/.adoptium_java/jre17" ]]; then
|
||||||
|
java_version=17
|
||||||
|
PATH="$(echo $HOME)/.adoptium_java/jre17/bin:$PATH"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
check_java_exec
|
||||||
|
if [[ $java_version == $required_java ]]; then
|
||||||
|
echo "Java $java_version detected in '$(echo $HOME)/.adoptium_java/jre$(echo $java_version)/bin/java.' will be used."
|
||||||
|
else
|
||||||
|
java_version=false
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
java_version=false
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get the system Java version
|
||||||
|
function check_java_exec {
|
||||||
|
# Check if java is installed
|
||||||
|
if ! command -v java &> /dev/null
|
||||||
|
then
|
||||||
|
java_version=false
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If java is installed, get the version (the java_version won't be 0)
|
||||||
|
if [[ $java_version != false ]]; then
|
||||||
|
# Get the current Java version and extract the build number
|
||||||
|
java_version=$(java -version 2>&1 | awk -F '"' '/version/ {print $2}' | awk -F '.' '{print $1}')
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get the required Java version for the Minecraft version
|
||||||
|
# For version 1.8 to 1.11 use java 8
|
||||||
|
# For version 1.12 to 1.16.4 use java 11
|
||||||
|
# For version 1.16.5 use java 16
|
||||||
|
# For version 1.17.1 to 1.18.1+ use java 17
|
||||||
|
function get_required_java {
|
||||||
|
# Extract the middle number of the Minecraft version
|
||||||
|
minecraft_middle=$(echo "$version" | awk -F '.' '{print $2}')
|
||||||
|
|
||||||
|
|
||||||
|
# Get the java version for the defined server version
|
||||||
|
if (( 8 <= minecraft_middle && minecraft_middle <= 11 )); then
|
||||||
|
if ! [[ $java_version -eq 8 ]]; then
|
||||||
|
required_java=8
|
||||||
|
fi
|
||||||
|
elif (( 12 <= minecraft_middle && minecraft_middle <= 16 )); then
|
||||||
|
if ! [[ $java_version -eq 11 ]]; then
|
||||||
|
required_java=11
|
||||||
|
fi
|
||||||
|
elif (( minecraft_middle == 17 )); then
|
||||||
|
if ! [[ $java_version -eq 16 ]]; then
|
||||||
|
required_java=16
|
||||||
|
fi
|
||||||
|
elif (( 18 <= minecraft_middle )); then
|
||||||
|
if ! [[ $java_version -eq 17 ]]; then
|
||||||
|
required_java=17
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
>&2 echo "Unsupported Minecraft version $select_version."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check host architecture
|
||||||
|
function get_os_arch {
|
||||||
|
if [[ $(uname -m) == "x86_64" ]]; then
|
||||||
|
arch="x64"
|
||||||
|
elif [[ $(uname -m) == "aarch64" ]]; then
|
||||||
|
arch="aarch64"
|
||||||
|
else
|
||||||
|
>&2 echo "Unsupported architecture $(uname -m)."
|
||||||
|
>&2 echo "Please install Java $required_java manually."
|
||||||
|
exit 3
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Download openjdk jre
|
||||||
|
function download_jre {
|
||||||
|
# Check if .java folder exists
|
||||||
|
if ! [[ -d "$(echo $HOME)/.adoptium_java" ]]; then
|
||||||
|
echo "Creating $(echo $HOME)/.adoptium_java folder"
|
||||||
|
mkdir "$(echo $HOME)/.adoptium_java"
|
||||||
|
fi
|
||||||
|
# Download the correct version of Java
|
||||||
|
if [[ $required_java == "8" ]]; then
|
||||||
|
echo "Downloading Adoptium JRE 8"
|
||||||
|
curl -L -o java.tar.gz "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u362-b09/OpenJDK8U-jre_$(echo $arch)_linux_hotspot_8u362b09.tar.gz"
|
||||||
|
echo "Extracting Java 8"
|
||||||
|
tar -xzf java.tar.gz
|
||||||
|
echo "Moving Java 8 to $(echo $HOME)/.adoptium_java/jre8"
|
||||||
|
mv jdk8u362-b09-jre "$(echo $HOME)/.adoptium_java/jre8"
|
||||||
|
echo "Removing temporary files"
|
||||||
|
rm java.tar.gz
|
||||||
|
elif [[ $required_java == "11" ]]; then
|
||||||
|
echo "Downloading Adoptium JRE 11"
|
||||||
|
curl -L -o java.tar.gz "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.18%2B10/OpenJDK11U-jre_$(echo $arch)_linux_hotspot_11.0.18_10.tar.gz"
|
||||||
|
echo "Extracting Java 11"
|
||||||
|
tar -xzf java.tar.gz
|
||||||
|
echo "Moving Java 11 to $(echo $HOME)/.adoptium_java/jre11"
|
||||||
|
mv jdk-11.0.18+10-jre "$(echo $HOME)/.adoptium_java/jre11"
|
||||||
|
echo "Removing temporary files"
|
||||||
|
rm java.tar.gz
|
||||||
|
elif [[ $required_java == "16" ]]; then
|
||||||
|
echo "Downloading Java 16"
|
||||||
|
curl -L -o java.tar.gz "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.18%2B10/OpenJDK11U-jre_$(echo $arch)_linux_hotspot_16.0.2_7.tar.gz"
|
||||||
|
echo "Extracting Java 16"
|
||||||
|
tar -xzf java.tar.gz
|
||||||
|
echo "Moving Java 16 to $(echo $HOME)/.adoptium_java/jre16"
|
||||||
|
mv jdk-16.0.2+7-jre "$(echo $HOME)/.adoptium_java/jre16"
|
||||||
|
echo "Removing temporary files"
|
||||||
|
rm java.tar.gz
|
||||||
|
elif [[ $required_java == "17" ]]; then
|
||||||
|
echo "Downloading Java 17"
|
||||||
|
curl -L -o java.tar.gz "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.6%2B10/OpenJDK17U-jre_$(echo $arch)_linux_hotspot_17.0.6_10.tar.gz"
|
||||||
|
echo "Extracting Java 17"
|
||||||
|
tar -xzf java.tar.gz
|
||||||
|
echo "Moving Java 17 to $(echo $HOME)/.adoptium_java/jre17"
|
||||||
|
mv jdk-17.0.6+10-jre "$(echo $HOME)/.adoptium_java/jre17"
|
||||||
|
echo "Removing temporary files"
|
||||||
|
rm java.tar.gz
|
||||||
|
fi
|
||||||
|
}
|
124
ms-manager/paper.sh
Normal file
124
ms-manager/paper.sh
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
# API URL
|
||||||
|
api_url="https://api.papermc.io/v2/projects/paper/versions/$version/builds"
|
||||||
|
|
||||||
|
# Check if the version and build are valid
|
||||||
|
function check_version_valid {
|
||||||
|
if curl -s "$api_url" | grep -q '{"error":"Version not found."}'; then
|
||||||
|
>&2 echo "Error: Invalid version selected: $version"
|
||||||
|
exit 2
|
||||||
|
else
|
||||||
|
# Check if selected build exists
|
||||||
|
if [ ! -z "$build" ]; then
|
||||||
|
# WARNING: Check if the shortened versin works
|
||||||
|
# if curl -Is "https://api.papermc.io/v2/projects/paper/versions/$version/builds/$build/downloads/paper-$version-$build.jar" | grep "HTTP/2 404" >/dev/null; then
|
||||||
|
if curl -Is "$api_url/$build/downloads/paper-$version-$build.jar" | grep "HTTP/2 404" >/dev/null; then
|
||||||
|
>&2 echo "Error: Invalid build selected: $build"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Download server set by $version and $download_build
|
||||||
|
function download_server {
|
||||||
|
# Download the server
|
||||||
|
echo "Downloading PaperMC server..."
|
||||||
|
echo " - Version $version"
|
||||||
|
echo " - Build $download_build"
|
||||||
|
curl "https://api.papermc.io/v2/projects/paper/versions/$version/builds/$download_build/downloads/paper-$version-$download_build.jar" -o "./paper-$version-$download_build.jar"
|
||||||
|
echo "Download complete."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check if up to date
|
||||||
|
function check_updates {
|
||||||
|
if [[ $server_file == false ]]; then
|
||||||
|
download_build=$latest_build
|
||||||
|
update_version=true
|
||||||
|
update_build=true
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if $build is empty
|
||||||
|
if [[ -z $build ]]; then
|
||||||
|
# Check if the current version is the same as the one selected
|
||||||
|
if [[ $current_version == $version ]]; then
|
||||||
|
# Check if the current build is the same as the one selected
|
||||||
|
if [[ $current_build == $latest_build ]]; then
|
||||||
|
echo "Server is up to date."
|
||||||
|
else
|
||||||
|
echo "Server is not up to date."
|
||||||
|
download_build=$latest_build
|
||||||
|
update_build=true
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# Check if $server_file is false
|
||||||
|
if [[ $server_file != false ]]; then
|
||||||
|
ask_version_differs
|
||||||
|
echo "Server is not up to date."
|
||||||
|
download_build=$latest_build
|
||||||
|
update_version=true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# Check if the current version is the same as the one selected
|
||||||
|
if [[ $current_version == $version ]]; then
|
||||||
|
# Check if the current build is the same as the one selected
|
||||||
|
if [[ $current_build == $build ]]; then
|
||||||
|
echo "Server is up to date."
|
||||||
|
else
|
||||||
|
echo "Server is not up to date."
|
||||||
|
download_build=$build
|
||||||
|
update_build=true
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# Check if $server_file is false
|
||||||
|
if [[ $server_file != false ]]; then
|
||||||
|
ask_version_differs
|
||||||
|
echo "Server is not up to date."
|
||||||
|
download_build=$build
|
||||||
|
update_version=true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get the latest build number
|
||||||
|
function get_latest_build {
|
||||||
|
# Get the latest build number
|
||||||
|
latest_build=$(curl -s $api_url | jq '.builds[-1].build')
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check for updates
|
||||||
|
function check_and_update {
|
||||||
|
if [[ $server_file == false ]]; then
|
||||||
|
download_build=$latest_build
|
||||||
|
update_version=true
|
||||||
|
update_build=true
|
||||||
|
else
|
||||||
|
echo Checking for updates...
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Get the latest build number
|
||||||
|
get_latest_build
|
||||||
|
|
||||||
|
# Check if the current version is up to date
|
||||||
|
check_updates
|
||||||
|
|
||||||
|
# Check if $build_update is true or $version_update is true
|
||||||
|
if [[ $update_build == true ]] || [[ $update_version == true ]]; then
|
||||||
|
if [[ $server_file != false ]]; then
|
||||||
|
old_server_file=$server_file
|
||||||
|
server_file="paper-$version-$download_build.jar"
|
||||||
|
download_server
|
||||||
|
# Delete the old server file
|
||||||
|
delete_old_server
|
||||||
|
else
|
||||||
|
server_file="paper-$version-$download_build.jar"
|
||||||
|
download_server
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
echo
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
3
ms-manager/version.sh
Normal file
3
ms-manager/version.sh
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
EXTRA_SCRIPTS_VERSION="v1.0.1"
|
59
msman.sh
Normal file → Executable file
59
msman.sh
Normal file → Executable file
@ -8,7 +8,7 @@ set -e
|
|||||||
# and acknowledge the original script and author. #
|
# and acknowledge the original script and author. #
|
||||||
#############################################################################################################
|
#############################################################################################################
|
||||||
|
|
||||||
CURRENT_SCRIPT_VERSION="v1.0.3"
|
CURRENT_SCRIPT_VERSION="v1.0.1"
|
||||||
|
|
||||||
# --------------------------------------------------
|
# --------------------------------------------------
|
||||||
# You shouldn't need to change anything in this file
|
# You shouldn't need to change anything in this file
|
||||||
@ -206,29 +206,27 @@ function launch_server {
|
|||||||
function helper_scripts_update {
|
function helper_scripts_update {
|
||||||
# Download matching version of helper scripts
|
# Download matching version of helper scripts
|
||||||
echo "Updating helper scripts..."
|
echo "Updating helper scripts..."
|
||||||
# Download the file into ms-manager.tar.gz
|
# Download the file into ms-man-helper.tar.gz
|
||||||
curl -LJ -w '%{http_code}\n' "https://github.com/$REPO_OWNER/$REPO_NAME/releases/download/$CURRENT_SCRIPT_VERSION/ms-man-helper.tar.gz" > ms-man-helper.tar.gz
|
if [[ $(curl -sLJ -w '%{http_code}\n' "https://github.com/jiriks74/msman.sh/releases/download/v1.0.0/ms-man-helper.tar.gz" -o msman-helper.tar.gz) == 200 ]]; then
|
||||||
# Check if the download was successful by checking the last line of the file for 200
|
|
||||||
if [[ $(cat ma-man.tar.gz | tail -n 1) == 200 ]]; then
|
|
||||||
# Remove the last line of the file
|
# Remove the last line of the file
|
||||||
sed -i '$d' ms-man-helper.tar.gz
|
# sed -i '$d' ms-man-helper.tar.gz
|
||||||
# Extract the files from ms-man-helper.tar.gz
|
# Extract the files from ms-man-helper.tar.gz
|
||||||
tar -xzf ms-man-helper.tar.gz
|
tar -xzf msman-helper.tar.gz
|
||||||
# Remove the old script
|
# Remove the old script
|
||||||
echo "Removing old helper scripts..."
|
echo "Removing old helper scripts..."
|
||||||
rm -rf .ms-manager
|
rm -rf .msman
|
||||||
echo "Removed old script"
|
echo "Removed old script"
|
||||||
echo "Moving new helper scripts into place..."
|
echo "Moving new helper scripts into place..."
|
||||||
mv ms-manager .ms-manager
|
mv msman .msman
|
||||||
echo "Removing temporary files..."
|
echo "Removing temporary files..."
|
||||||
rm ms-manager-helper.tar.gz
|
rm msman-helper.tar.gz
|
||||||
echo "Helper scripts updated successfully."
|
echo "Helper scripts updated successfully."
|
||||||
echo
|
echo
|
||||||
echo
|
echo
|
||||||
else
|
else
|
||||||
echo "Failed to update helper scripts."
|
echo "Failed to update helper scripts."
|
||||||
rm -rf ms-manager
|
rm -rf msman
|
||||||
rm ms-manager-helper.tar.gz
|
rm msman-helper.tar.gz
|
||||||
exit 5
|
exit 5
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@ -238,32 +236,32 @@ function self_update {
|
|||||||
# Download the latest version of the script
|
# Download the latest version of the script
|
||||||
echo "Updating script..."
|
echo "Updating script..."
|
||||||
# Download the file into start_new.sh
|
# Download the file into start_new.sh
|
||||||
curl -sLJ -w '%{http_code}\n' "https://github.com/$REPO_OWNER/$REPO_NAME/releases/download/$LATEST_VERSION/start.sh" > start_new.sh
|
curl -sLJ -w '%{http_code}\n' "https://github.com/$REPO_OWNER/$REPO_NAME/releases/download/$LATEST_SCRIPT_VERSION/start.sh" > msman_new.sh
|
||||||
# Check if the download was successful by checking the last line of the file for 200
|
# Check if the download was successful by checking the last line of the file for 200
|
||||||
if [[ $(cat start_new.sh | tail -n 1) == 200 ]]; then
|
if [[ $(cat start_new.sh | tail -n 1) == 200 ]]; then
|
||||||
# Remove the last line of the file
|
# Remove the last line of the file
|
||||||
sed -i '$d' start_new.sh
|
sed -i '$d' msman_new.sh
|
||||||
# Make the file executable
|
# Make the file executable
|
||||||
chmod +x start_new.sh
|
chmod +x msman_new.sh
|
||||||
# Remove the old script
|
# Remove the old script
|
||||||
rm start.sh
|
rm msman.sh
|
||||||
echo "Removed old script"
|
echo "Removed old script"
|
||||||
# Rename the new script
|
# Rename the new script
|
||||||
mv start_new.sh start.sh
|
mv msman_new.sh msman.sh
|
||||||
echo "Renamed new script"
|
echo "Renamed new script"
|
||||||
echo "Script updated successfully."
|
echo "Script updated successfully."
|
||||||
echo
|
echo
|
||||||
else
|
else
|
||||||
echo "Failed to update script."
|
echo "Failed to update script."
|
||||||
rm start_new.sh
|
rm msman_new.sh
|
||||||
exit 5
|
exit 5
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Check helper scripts update
|
# Check helper scripts update
|
||||||
function check_helper_scripts {
|
function check_helper_scripts {
|
||||||
if [[ -d .ms-manager ]]; then
|
if [[ -d .msman ]]; then
|
||||||
source "./ms-manager/version.sh"
|
source "./.msman/version.sh"
|
||||||
if [[ $CURRENT_SCRIPT_VERSION != $EXTRA_SCRIPTS_VERSION ]]; then
|
if [[ $CURRENT_SCRIPT_VERSION != $EXTRA_SCRIPTS_VERSION ]]; then
|
||||||
echo "Helper script verion mismatch!"
|
echo "Helper script verion mismatch!"
|
||||||
echo "Main script version: $CURRENT_SCRIPT_VERSION"
|
echo "Main script version: $CURRENT_SCRIPT_VERSION"
|
||||||
@ -298,10 +296,10 @@ function check_self_update {
|
|||||||
get_latest_script_release
|
get_latest_script_release
|
||||||
|
|
||||||
# Compare the current version with the latest version
|
# Compare the current version with the latest version
|
||||||
if [[ "$CURRENT_SCRIPT_VERSION" != "$LATEST_VERSION" ]]; then
|
if [[ "$CURRENT_SCRIPT_VERSION" != "$LATEST_SCRIPT_VERSION" ]]; then
|
||||||
echo "An update is available!"
|
echo "An update is available!"
|
||||||
echo "Current version: $CURRENT_SCRIPT_VERSION"
|
echo "Current version: $CURRENT_SCRIPT_VERSION"
|
||||||
echo "Latest version: $LATEST_VERSION"
|
echo "Latest version: $LATEST_SCRIPT_VERSION"
|
||||||
echo
|
echo
|
||||||
echo "The script will continue without updating in 15 seconds."
|
echo "The script will continue without updating in 15 seconds."
|
||||||
echo "If you decide to update it is your responsibility to check the release notes for any breaking changes."
|
echo "If you decide to update it is your responsibility to check the release notes for any breaking changes."
|
||||||
@ -320,7 +318,7 @@ function check_self_update {
|
|||||||
read -t 15 -p "Do you want to update? [y/N] " update
|
read -t 15 -p "Do you want to update? [y/N] " update
|
||||||
if [ "$update" == "y" ] || [ "$update" == "Y" ]; then
|
if [ "$update" == "y" ] || [ "$update" == "Y" ]; then
|
||||||
self_update
|
self_update
|
||||||
CURRENT_VERSION=$LATEST_VERSION
|
CURRENT_VERSION=$LATEST_SCRIPT_VERSION
|
||||||
check_helper_scripts
|
check_helper_scripts
|
||||||
else
|
else
|
||||||
echo "Skipping update."
|
echo "Skipping update."
|
||||||
@ -339,7 +337,7 @@ function load_config {
|
|||||||
echo "Config file does not exist."
|
echo "Config file does not exist."
|
||||||
echo "Downloading the default config file..."
|
echo "Downloading the default config file..."
|
||||||
# Download the default config file for the current version
|
# Download the default config file for the current version
|
||||||
curl -sLJ -w '%{http_code}' "https://github.com/$REPO_OWNER/$REPO_NAME/releases/download/$CURRENT_VERSION/launch.cfg" > launch.cfg
|
curl -sLJ -w '%{http_code}' "https://github.com/$REPO_OWNER/$REPO_NAME/releases/download/$CURRENT_SCRIPT_VERSION/launch.cfg" > launch.cfg
|
||||||
# Check if the download was successful by checking the last line of the file for 200
|
# Check if the download was successful by checking the last line of the file for 200
|
||||||
if [[ $(cat launch.cfg | tail -n 1) == 200 ]]; then
|
if [[ $(cat launch.cfg | tail -n 1) == 200 ]]; then
|
||||||
# Remove the last line of the file
|
# Remove the last line of the file
|
||||||
@ -369,6 +367,7 @@ function load_config {
|
|||||||
>&2 echo "Failed to download the default config file."
|
>&2 echo "Failed to download the default config file."
|
||||||
>&2 echo "Go to the GitHub repository for more information:"
|
>&2 echo "Go to the GitHub repository for more information:"
|
||||||
>&2 echo "https://github.com/$REPO_OWNER/$REPO_NAME"
|
>&2 echo "https://github.com/$REPO_OWNER/$REPO_NAME"
|
||||||
|
rm launch.cfg
|
||||||
echo "Exiting..."
|
echo "Exiting..."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@ -390,18 +389,18 @@ function delete_old_server {
|
|||||||
function load_script {
|
function load_script {
|
||||||
# DONE: Check if the script files exist
|
# DONE: Check if the script files exist
|
||||||
# - Checked in check_helper_scripts
|
# - Checked in check_helper_scripts
|
||||||
source "./.ms-manager/detect_server.sh"
|
source "./.msman/detect_server.sh"
|
||||||
source "./.ms-manager/java.sh"
|
source "./.msman/java.sh"
|
||||||
|
|
||||||
# Load the correct script
|
# Load the correct script
|
||||||
if [[ $server_type == "paper" ]]; then
|
if [[ $server_type == "paper" ]]; then
|
||||||
source "./.ms-manager/paper.sh"
|
source "./.msman/paper.sh"
|
||||||
# elif [[ $server_type == "vanilla" ]]; then
|
# elif [[ $server_type == "vanilla" ]]; then
|
||||||
# source "$cwd/ms-manager/vanilla.sh"
|
# source "$cwd/msman/vanilla.sh"
|
||||||
# elif [[ $server_type == "forge" ]]; then
|
# elif [[ $server_type == "forge" ]]; then
|
||||||
# source "$cwd/ms-manager/forge.sh"
|
# source "$cwd/msman/forge.sh"
|
||||||
# elif [[ $server_type == "fabric" ]]; then
|
# elif [[ $server_type == "fabric" ]]; then
|
||||||
# source "$cwd/ms-manager/fabric.sh"
|
# source "$cwd/msman/fabric.sh"
|
||||||
else
|
else
|
||||||
>&2 echo "Unknown server type."
|
>&2 echo "Unknown server type."
|
||||||
echo "Exiting..."
|
echo "Exiting..."
|
||||||
|
Loading…
x
Reference in New Issue
Block a user