113 lines
2.8 KiB
Bash
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" |