#!/bin/bash # Param Handle VERSION=$(echo $1 | tr -d '/') # 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) ALL_VERSIONS_NO_DOT=$(printf "%s\n" "$ALL_VERSIONS" | 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 if [[ -n $VERSION ]]; then if echo "$ALL_VERSIONS" | tr -d '.' | grep -q "^$VERSION$"; then FINAL_VERSION=$VERSION else echo "Error: version '$VERSION' not found in version history." exit 1 fi 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 FINAL_VERSION="$VERSION" else echo "Error: version '$VERSION' does not exist locally." exit 1 fi # Remove rm -fr ./$FINAL_VERSION