#!/bin/bash # Version History Check TEXT=$( curl -s https://terraria.wiki.gg/wiki/Desktop_version_history | tr '\n' ' ' | grep -oP '(?<=).*?(?=)' ) ALL_VERSIONS=$(echo "$TEXT" | grep -oP '[0-9]+\.[0-9]+(\.[0-9]+){1,2}') LATEST_VERSION=$(echo "$ALL_VERSIONS" | head -n1) LATEST_VERSION_NO_DOT=$(echo "$LATEST_VERSION" | tr -d '.') ALL_VERSIONS_NO_DOT=$(printf "%s\n" "$ALL_VERSIONS" | tr -d '.') if [[ $1 == 'latest' ]]; then VERSION=$LATEST_VERSION_NO_DOT echo "Latest version: $VERSION" elif [[ -n $1 ]]; then if echo "$ALL_VERSIONS" | tr -d '.' | grep -q "^$1$"; then VERSION=$1 else echo "Error: version '$1' not found in version history." exit 1 fi else VERSION=$LATEST_VERSION_NO_DOT echo "If no parameters are passed" echo "The version will default to the latest version." echo "Latest version: $VERSION. " fi # Local Folder Check LOCAL_VERSIONS=$(printf '%s\n' * | grep -oP '[0-9]+[0-9]+([0-9]+)?+([0-9]+)?') if printf '%s\n' "$LOCAL_VERSIONS" | grep -qx -- "$VERSION"; then VERSION="$VERSION" else echo "Error: version '$VERSION' does not exist locally." printf "Do you want to install it? (Y/n) " read CHOICE if [[ $CHOICE == 'y' || $CHOICE == 'Y' ]]; then bash install $VERSION else exit 1 fi fi # Run bash ./$VERSION/Linux/TerrariaServer