mirror of
https://github.com/nxtrace/NTrace-core.git
synced 2025-08-12 06:26:39 +00:00
121 lines
2.6 KiB
Bash
121 lines
2.6 KiB
Bash
#!/bin/bash
|
||
|
||
checkRootPermit() {
|
||
[[ $EUID -ne 0 ]] && echo "请使用sudo/root权限运行本脚本" && exit 1
|
||
}
|
||
|
||
checkSystemArch() {
|
||
arch=$(uname -m)
|
||
if [[ $arch == "x86_64" ]]; then
|
||
archParam="amd64"
|
||
fi
|
||
|
||
if [[ $arch == "aarch64" ]]; then
|
||
archParam="arm64"
|
||
fi
|
||
}
|
||
|
||
checkSystemDistribution() {
|
||
case "$OSTYPE" in
|
||
darwin*)
|
||
osDistribution="darwin"
|
||
downPath="nexttrace"
|
||
;;
|
||
linux*)
|
||
osDistribution="linux"
|
||
downPath="/usr/local/bin/nexttrace"
|
||
;;
|
||
*)
|
||
echo "unknown: $OSTYPE"
|
||
exit 1
|
||
;;
|
||
esac
|
||
}
|
||
|
||
installWgetPackage() {
|
||
# macOS should install wget originally. Nothing to do
|
||
echo "wget 正在安装中..."
|
||
# try apt
|
||
apt -h &> /dev/null
|
||
if [ $? -eq 0 ]; then
|
||
# 先更新一下数据源,有些机器数据源比较老可能会404
|
||
apt update -y &> /dev/null
|
||
apt install wget -y &> /dev/null
|
||
fi
|
||
|
||
# try yum
|
||
yum -h &> /dev/null
|
||
if [ $? -eq 0 ]; then
|
||
yum install wget -y &> /dev/null
|
||
fi
|
||
|
||
# try dnf
|
||
dnf -h &> /dev/null
|
||
if [ $? -eq 0 ]; then
|
||
dnf install wget -y &> /dev/null
|
||
fi
|
||
|
||
# try pacman
|
||
pacman -h &> /dev/null
|
||
if [ $? -eq 0 ]; then
|
||
pacman -Sy
|
||
pacman -S wget
|
||
fi
|
||
|
||
}
|
||
|
||
checkWgetPackage() {
|
||
wget -h &> /dev/null
|
||
if [ $? -ne 0 ]; then
|
||
read -r -p "您还没有安装wget,是否安装? (y/n)" input
|
||
|
||
case $input in
|
||
[yY][eE][sS]|[yY])
|
||
installWgetPackage
|
||
;;
|
||
|
||
[nN][oO]|[nN])
|
||
echo "您选择了取消安装,脚本即将退出"
|
||
exit 1
|
||
;;
|
||
|
||
*)
|
||
installWgetPackage
|
||
;;
|
||
esac
|
||
fi
|
||
}
|
||
|
||
downloadBinrayFile() {
|
||
echo "获取最新版的 NextTrace 发行版文件信息"
|
||
# 简单说明一下,Github提供了一个API,可以获取最新发行版本的二进制文件下载地址(对应的是browser_download_url),根据刚刚测得的osDistribution、archParam,获取对应的下载地址
|
||
latestURL=$(curl -s https://api.github.com/repos/xgadget-lab/nexttrace/releases/latest | grep -i "browser_download_url.*${osDistribution}.*${archParam}" | awk -F '"' '{print $4}')
|
||
echo "正在下载 NextTrace 二进制文件..."
|
||
wget -O ${downPath} ${latestURL} &> /dev/null
|
||
if [ $? -eq 0 ];
|
||
then
|
||
echo "NextTrace 现在已经在您的系统中可用"
|
||
changeMode
|
||
else
|
||
echo "NextTrace 下载失败,请检查您的网络是否正常"
|
||
exit 1
|
||
fi
|
||
}
|
||
|
||
changeMode() {
|
||
chmod +x ./nexttrace &> /dev/null
|
||
chmod +x ${downPath} &> /dev/null
|
||
}
|
||
|
||
runBinrayFileHelp() {
|
||
if [ -e ${downPath} ]; then
|
||
${downPath} -h
|
||
fi
|
||
}
|
||
|
||
checkSystemDistribution
|
||
checkSystemArch
|
||
checkWgetPackage
|
||
downloadBinrayFile
|
||
runBinrayFileHelp
|