From f675b884f51095b5605b6a69881df9e05bc678e5 Mon Sep 17 00:00:00 2001 From: naiba Date: Sun, 14 Jul 2024 22:52:53 +0800 Subject: [PATCH] feat: fetch version from api for dashboard standalone install --- README.md | 2 +- script/install.sh | 26 ++++++++++++++++++++++---- script/install_en.sh | 24 +++++++++++++++++++++--- 3 files changed, 44 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 1eaef0e..6ca6022 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@
LOGO designed by 熊大 .

-GitHub release (with filter)    +GitHub release (with filter)   

:trollface: Nezha Monitoring: Self-hostable, lightweight, servers and websites monitoring and O&M tool.

diff --git a/script/install.sh b/script/install.sh index 9ef78ae..3333058 100755 --- a/script/install.sh +++ b/script/install.sh @@ -12,7 +12,7 @@ NZ_DASHBOARD_PATH="${NZ_BASE_PATH}/dashboard" NZ_AGENT_PATH="${NZ_BASE_PATH}/agent" NZ_DASHBOARD_SERVICE="/etc/systemd/system/nezha-dashboard.service" NZ_DASHBOARD_SERVICERC="/etc/init.d/nezha-dashboard" -NZ_VERSION="v0.17.2" +NZ_VERSION="v0.18.0" red='\033[0;31m' green='\033[0;32m' @@ -556,6 +556,17 @@ restart_and_update_docker() { } restart_and_update_standalone() { + local version=$(curl -m 10 -sL "https://api.github.com/repos/naiba/nezha/releases/latest" | grep "tag_name" | head -n 1 | awk -F ":" '{print $2}' | sed 's/\"//g;s/,//g;s/ //g') + if [ ! -n "$version" ]; then + version=$(curl -m 10 -sL "https://gitee.com/api/v5/repos/naibahq/nezha/releases/latest" | awk -F '"' '{for(i=1;i<=NF;i++){if($i=="tag_name"){print $(i+2)}}}') + fi + if [ ! -n "$version" ]; then + version=$(curl -m 10 -sL "https://fastly.jsdelivr.net/gh/naiba/nezha/" | grep "option\.value" | awk -F "'" '{print $2}' | sed 's/naiba\/nezha@/v/g') + fi + if [ ! -n "$version" ]; then + version=$(curl -m 10 -sL "https://gcore.jsdelivr.net/gh/naiba/nezha/" | grep "option\.value" | awk -F "'" '{print $2}' | sed 's/naiba\/nezha@/v/g') + fi + if [ "$os_alpine" != 1 ]; then sudo systemctl daemon-reload sudo systemctl stop nezha-dashboard @@ -563,10 +574,17 @@ restart_and_update_standalone() { sudo rc-service nezha-dashboard stop fi - if [ -z "$CN" ]; then - NZ_DASHBOARD_URL="https://${GITHUB_URL}/naiba/nezha/releases/latest/download/dashboard-linux-$os_arch.zip" + if [ ! -n "$version" ]; then + err "获取版本号失败,请检查本机能否链接 https://api.github.com/repos/naiba/nezha/releases/latest" + return 1 else - NZ_DASHBOARD_URL="https://${GITHUB_URL}/naibahq/nezha/releases/latest/download/dashboard-linux-$os_arch.zip" + echo "当前最新版本为: ${version}" + fi + + if [ -z "$CN" ]; then + NZ_DASHBOARD_URL="https://${GITHUB_URL}/naiba/nezha/releases/$version/download/dashboard-linux-$os_arch.zip" + else + NZ_DASHBOARD_URL="https://${GITHUB_URL}/naibahq/nezha/releases/$version/download/dashboard-linux-$os_arch.zip" fi sudo wget -qO $NZ_DASHBOARD_PATH/app.zip $NZ_DASHBOARD_URL >/dev/null 2>&1 && sudo unzip -qq $NZ_DASHBOARD_PATH/app.zip -d $NZ_DASHBOARD_PATH && sudo mv $NZ_DASHBOARD_PATH/dist/dashboard-linux-$os_arch $NZ_DASHBOARD_PATH/app && sudo rm -r $NZ_DASHBOARD_PATH/app.zip $NZ_DASHBOARD_PATH/dist diff --git a/script/install_en.sh b/script/install_en.sh index f583372..6d9d665 100755 --- a/script/install_en.sh +++ b/script/install_en.sh @@ -12,7 +12,7 @@ NZ_DASHBOARD_PATH="${NZ_BASE_PATH}/dashboard" NZ_AGENT_PATH="${NZ_BASE_PATH}/agent" NZ_DASHBOARD_SERVICE="/etc/systemd/system/nezha-dashboard.service" NZ_DASHBOARD_SERVICERC="/etc/init.d/nezha-dashboard" -NZ_VERSION="v0.17.2" +NZ_VERSION="v0.18.0" red='\033[0;31m' green='\033[0;32m' @@ -550,6 +550,24 @@ restart_and_update_docker() { } restart_and_update_standalone() { + local version=$(curl -m 10 -sL "https://api.github.com/repos/naiba/nezha/releases/latest" | grep "tag_name" | head -n 1 | awk -F ":" '{print $2}' | sed 's/\"//g;s/,//g;s/ //g') + if [ ! -n "$version" ]; then + version=$(curl -m 10 -sL "https://gitee.com/api/v5/repos/naibahq/nezha/releases/latest" | awk -F '"' '{for(i=1;i<=NF;i++){if($i=="tag_name"){print $(i+2)}}}') + fi + if [ ! -n "$version" ]; then + version=$(curl -m 10 -sL "https://fastly.jsdelivr.net/gh/naiba/nezha/" | grep "option\.value" | awk -F "'" '{print $2}' | sed 's/naiba\/nezha@/v/g') + fi + if [ ! -n "$version" ]; then + version=$(curl -m 10 -sL "https://gcore.jsdelivr.net/gh/naiba/nezha/" | grep "option\.value" | awk -F "'" '{print $2}' | sed 's/naiba\/nezha@/v/g') + fi + + if [ ! -n "$version" ]; then + err "Fail to obtaine agent version, please check if the network can link https://api.github.com/repos/nezhahq/agent/releases/latest" + return 1 + else + echo "The current latest version is: ${version}" + fi + if [ "$os_alpine" != 1 ]; then sudo systemctl daemon-reload sudo systemctl stop nezha-dashboard @@ -558,9 +576,9 @@ restart_and_update_standalone() { fi if [ -z "$CN" ]; then - NZ_DASHBOARD_URL="https://${GITHUB_URL}/naiba/nezha/releases/latest/download/dashboard-linux-$os_arch.zip" + NZ_DASHBOARD_URL="https://${GITHUB_URL}/naiba/nezha/releases/$version/download/dashboard-linux-$os_arch.zip" else - NZ_DASHBOARD_URL="https://${GITHUB_URL}/naibahq/nezha/releases/latest/download/dashboard-linux-$os_arch.zip" + NZ_DASHBOARD_URL="https://${GITHUB_URL}/naibahq/nezha/releases/$version/download/dashboard-linux-$os_arch.zip" fi sudo wget -qO $NZ_DASHBOARD_PATH/app.zip $NZ_DASHBOARD_URL >/dev/null 2>&1 && sudo unzip -qq $NZ_DASHBOARD_PATH/app.zip -d $NZ_DASHBOARD_PATH && sudo mv $NZ_DASHBOARD_PATH/dist/dashboard-linux-$os_arch $NZ_DASHBOARD_PATH/app && sudo rm -r $NZ_DASHBOARD_PATH/app.zip $NZ_DASHBOARD_PATH/dist