diff --git a/README.md b/README.md index 05995a1..efacc69 100644 --- a/README.md +++ b/README.md @@ -44,9 +44,9 @@ bash remove 1456 # 卸载1.4.5.6 ``` ### 3.启动 -使用`run`加版本号即可删除泰拉瑞亚服务端 +使用`run`加版本号即可启动泰拉瑞亚服务端 ```shell bash run 1456 # 启动1.4.5.6 ``` ->还可以使用`latest`参数直接安装、删除、启动最新版本 ~~(尚未实现)~~ -如果未填入参数,则直接按最新版本安装 \ No newline at end of file +>还可以使用`latest`参数直接安装、启动最新版本 +安装时如果未填入参数,则直接按最新版本安装,运行参数如果不存在本地,则调用安装后运行 \ No newline at end of file diff --git a/install b/install old mode 100644 new mode 100755 index 07c58f3..02a8584 --- a/install +++ b/install @@ -35,13 +35,13 @@ else fi fi -# Version Check +# 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]+)?+(\.[0-9]+)?') -VERSION=$(echo "$ALL_VERSIONS" | head -n1) -VERSION_NO_DOT=$(echo "$VERSION" | tr -d '.') +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 diff --git a/remove b/remove old mode 100644 new mode 100755 index b17107d..d15f682 --- a/remove +++ b/remove @@ -1,27 +1,47 @@ #!/bin/bash -# Version Check +# 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]+)?+(\.[0-9]+)?') -VERSION=$(echo "$ALL_VERSIONS" | head -n1) -VERSION_NO_DOT=$(echo "$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" +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 '$1' not found in version history." + 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 "Latest version: $VERSION" - VERSION=$VERSION_NO_DOT + echo "Error: version '$VERSION' does not exist locally." + exit 1 fi # Remove -rm /fr ./$VERSION \ No newline at end of file +rm -fr ./$FINAL_VERSION \ No newline at end of file diff --git a/run b/run old mode 100644 new mode 100755 index 74c5eae..10e61cb --- a/run +++ b/run @@ -1,26 +1,43 @@ #!/bin/bash -# Version Check +# 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]+)?+(\.[0-9]+)?') -VERSION=$(echo "$ALL_VERSIONS" | head -n1) -VERSION_NO_DOT=$(echo "$VERSION" | tr -d '.') +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" - 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 + 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