68 lines
1.8 KiB
Bash
Executable File
68 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#Toolkit Check
|
|
if command -v unzip 1>/dev/null 2>&1; then
|
|
printf "unzip is installed\n"
|
|
else
|
|
printf "unzip may not be installed. Do you want to continue? (Y/n) "
|
|
read CHOICE
|
|
if [[ $CHOICE == 'y' || $CHOICE == 'Y' ]]; then
|
|
printf 'continue\n'
|
|
else
|
|
exit 1
|
|
fi
|
|
fi
|
|
if command -v curl 1>/dev/null 2>&1; then
|
|
printf "curl is installed\n"
|
|
else
|
|
printf "curl may not be installed. Do you want to continue? (Y/n) "
|
|
read CHOICE
|
|
if [[ $CHOICE == 'y' || $CHOICE == 'Y' ]]; then
|
|
printf 'continue\n'
|
|
else
|
|
exit 1
|
|
fi
|
|
fi
|
|
if command -v wget 1>/dev/null 2>&1; then
|
|
printf "wget is installed\n"
|
|
else
|
|
printf "wget may not be installed. Do you want to continue? (Y/n) "
|
|
read CHOICE
|
|
if [[ $CHOICE == 'y' || $CHOICE == 'Y' ]]; then
|
|
printf 'continue\n'
|
|
else
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# Version History Check
|
|
TEXT=$(
|
|
curl -s https://terraria.wiki.gg/wiki/Desktop_version_history | tr '\n' ' ' | grep -oP '(?<=<tbody>).*?(?=</tbody>)'
|
|
)
|
|
ALL_VERSIONS=$(echo "$TEXT" | grep -oP '[0-9]+\.[0-9]+(\.[0-9]+)?+(\.[0-9]+)?')
|
|
LATEST_VERSION=$(printf "%s\n" "$ALL_VERSIONS" | head -n1)
|
|
VERSION_NO_DOT=$(echo "$LATEST_VERSION" | tr -d '.')
|
|
if [[ $1 == 'latest' ]]; then
|
|
echo "Latest version: $VERSION"
|
|
VERSION=$VERSION_NO_DOT
|
|
elif [[ -n $1 ]]; then
|
|
if echo "$ALL_VERSIONS" | tr -d '.' | grep -q "^$1$"; then
|
|
VERSION=$1
|
|
echo "Selected version: $VERSION"
|
|
else
|
|
echo "Error: version '$1' not found in version history."
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "Latest version: $VERSION"
|
|
VERSION=$VERSION_NO_DOT
|
|
fi
|
|
|
|
# Install
|
|
wget https://terraria.org/api/download/pc-dedicated-server/terraria-server-$VERSION.zip
|
|
unzip terraria-server-$VERSION.zip
|
|
rm terraria-server-$VERSION.zip
|
|
rm -fr ./$VERSION/Windows/
|
|
cd $VERSION/Linux/
|
|
chmod +x TerrariaServer.bin.x86_64
|