From c56b55a7d36bb2865b025d3f7e1b353a4344eca1 Mon Sep 17 00:00:00 2001 From: sunshineplan Date: Thu, 12 Apr 2018 10:53:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A3=80=E6=9F=A5=E7=89=88=E6=9C=AC=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 检查新版本时增加检测本地是否安装的情况 使用version参数时,不需要键入v,直接打版本号即可 --- release/install-release.sh | 59 ++++++++++++++++++++++---------------- 1 file changed, 35 insertions(+), 24 deletions(-) diff --git a/release/install-release.sh b/release/install-release.sh index d67ed56b3..47f930ef3 100755 --- a/release/install-release.sh +++ b/release/install-release.sh @@ -156,21 +156,24 @@ extract(){ } -# 1: new V2Ray. 0: no +# 1: new V2Ray. 0: no. 2: not installed. 3: check failed. 4: don't check. getVersion(){ if [[ -n "$VERSION" ]]; then - NEW_VER="$VERSION" - return 1 + NEW_VER="v$VERSION" + return 4 else - CUR_VER=`/usr/bin/v2ray/v2ray -version 2>/dev/null | head -n 1 | cut -d " " -f2` + VER=`/usr/bin/v2ray/v2ray -version 2>/dev/null` + RETVAL="$?" + CUR_VER=`echo $VER | head -n 1 | cut -d " " -f2` TAG_URL="https://api.github.com/repos/v2ray/v2ray-core/releases/latest" NEW_VER=`curl ${PROXY} -s ${TAG_URL} --connect-timeout 10| grep 'tag_name' | cut -d\" -f4` - if [[ $? -ne 0 ]] || [[ $NEW_VER == "" ]]; then colorEcho ${RED} "Network error! Please check your network or try again." - exit + return 3 + elif [[ $RETVAL -ne 0 ]];then + return 2 elif [[ "$NEW_VER" != "$CUR_VER" ]];then - return 1 + return 1 fi return 0 fi @@ -335,22 +338,26 @@ remove(){ } checkUpdate(){ - echo "Checking for update." - getVersion - if [[ $? -eq 1 ]]; then - colorEcho ${GREEN} "Found new version ${NEW_VER} for V2Ray." - exit - else - colorEcho ${GREEN} "No new version." - exit - fi + echo "Checking for update." + VERSION="" + getVersion + RETVAL="$?" + if [[ $RETVAL -eq 1 ]]; then + colorEcho ${GREEN} "Found new version ${NEW_VER} for V2Ray.(Current version:$CUR_VER)" + elif [[ $RETVAL -eq 0 ]]; then + colorEcho ${GREEN} "No new version. Current version is ${NEW_VER}." + elif [[ $RETVAL -eq 2 ]]; then + colorEcho ${RED} "No V2Ray installed." + colorEcho ${GREEN} "The newest version for V2Ray is ${NEW_VER}." + fi + return 0 } main(){ #helping information [[ "$HELP" == "1" ]] && Help - [[ "$CHECK" == "1" ]] && checkUpdate [[ "$REMOVE" == "1" ]] && remove + [[ "$CHECK" == "1" ]] && checkUpdate && return sysArch # extract local file @@ -374,15 +381,19 @@ main(){ # download via network and extract installSoftware "curl" getVersion - if [[ $? == 0 ]] && [[ "$FORCE" != "1" ]]; then + RETVAL="$?" + if [[ $RETVAL == 0 ]] && [[ "$FORCE" != "1" ]]; then colorEcho ${GREEN} "Latest version ${NEW_VER} is already installed." - exit - else - colorEcho ${BLUE} "Installing V2Ray ${NEW_VER} on ${ARCH}" - downloadV2Ray - installSoftware unzip - extract ${ZIPFILE} + return + elif [[ $RETVAL == 3 ]]; then + return 3 + elif [[ $RETVAL == 1 ]]; then + colorEcho ${GREEN} "Found new version ${NEW_VER} for V2Ray.(Current version:$CUR_VER)" fi + colorEcho ${BLUE} "Installing V2Ray ${NEW_VER} on ${ARCH}" + downloadV2Ray || return $? + installSoftware unzip || return $? + extract ${ZIPFILE} || return $? fi if pgrep "v2ray" > /dev/null ; then V2RAY_RUNNING=1