mdserver-web/plugins/nezha/update.sh

113 lines
2.8 KiB
Bash

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
# cd /www/server/mdserver-web && bash plugins/nezha/update.sh
curPath=`pwd`
serverPath=$(dirname "$curPath")
echo $curPath
nezhaDir=${serverPath}/source/nezha
REPO="nezhahq/nezha"
LATEST_VERSION=$(curl -sL "https://api.github.com/repos/$REPO/releases/latest" | jq -r '.tag_name')
echo "最新版本是: $LATEST_VERSION"
NUMBER_LATEST_VERSION=${LATEST_VERSION:1}
echo "最新[NUMBER]是: $NUMBER_LATEST_VERSION"
# INSTALL_VERSION=`cat /www/server/nezha/version.pl`
# echo "安装的版本: $INSTALL_VERSION"
INSTALL_VERSION=`/www/server/nezha/dashboard/app -v`
echo "安装的版本: $INSTALL_VERSION"
if [ -d /www/server/nezha ];then
echo "$INSTALL_VERSION" > /www/server/nezha/version.pl
fi
if [ "$INSTALL_VERSION" == "$NUMBER_LATEST_VERSION" ];then
echo "已经是最新!!!"
exit
fi
get_arch() {
uname=$(uname -m)
case "$uname" in
amd64|x86_64)
ARCH="amd64"
;;
i386|i686)
ARCH="386"
;;
aarch64|arm64)
ARCH="arm64"
;;
*arm*)
ARCH="arm"
;;
s390x)
ARCH="s390x"
;;
riscv64)
ARCH="riscv64"
;;
*)
err "未知架构:$ARCH"
exit 1
;;
esac
}
get_arch
download_file() {
url="${1}"
destination="${2}"
printf "Fetching ${url} \n\n"
if test -x "$(command -v curl)"; then
code=$(curl --connect-timeout 15 -w '%{http_code}' -L "${url}" -o "${destination}")
elif test -x "$(command -v wget)"; then
code=$(wget -t2 -T15 -O "${destination}" --server-response "${url}" 2>&1 | awk '/^ HTTP/{print $2}' | tail -1)
else
printf "\e[1;31mNeither curl nor wget was available to perform http requests.\e[0m\n"
exit 1
fi
if [ "${code}" != 200 ]; then
printf "\e[1;31mRequest failed with code %s\e[0m\n" $code
exit 1
else
printf "\n\e[1;33mDownload succeeded\e[0m\n"
fi
}
TARGET_DIR="$serverPath/nezha/dashboard"
filename="dashboard-linux-${ARCH}.zip"
DOWNLOAD_URL="https://github.com/nezhahq/nezha/releases/download/v${NUMBER_LATEST_VERSION}/${filename}"
DOWNLOAD_FILE="$nezhaDir/$filename"
if [ ! -f $DOWNLOAD_FILE ];then
download_file $DOWNLOAD_URL $DOWNLOAD_FILE
fi
if [ ! -d $TARGET_DIR ]; then
mkdir -p $TARGET_DIR
fi
cd $TARGET_DIR && rm -rf app.bak
cd $TARGET_DIR && mv app app.bak
unzip $DOWNLOAD_FILE -d $TARGET_DIR
echo "TARGET_DIR:"$TARGET_DIR
if [ ! -f $TARGET_DIR/app ];then
cd $TARGET_DIR && mv dashboard-linux-${ARCH} app && chmod +x app
fi
systemctl restart nezha-dashboard
echo $DOWNLOAD_URL
if [ -d /www/server/nezha ];then
echo "$INSTALL_VERSION" > /www/server/nezha/version.pl
fi
echo "ok"