This commit is contained in:
juewuy
2025-12-31 21:15:05 +08:00

View File

@@ -412,7 +412,7 @@ setcore(){ #内核选择菜单
echo "-----------------------------------------------" echo "-----------------------------------------------"
echo "9 手动指定处理器架构" echo "9 手动指定处理器架构"
echo "-----------------------------------------------" echo "-----------------------------------------------"
echo 0 返回上级菜单 echo "0 返回上级菜单"
read -p "请输入对应数字 > " num read -p "请输入对应数字 > " num
case "$num" in case "$num" in
0) 0)
@@ -485,8 +485,8 @@ getgeo(){ #下载Geo文件
fi fi
sleep 1 sleep 1
} }
setcustgeo(){ #下载自定义数据库文件
getcustgeo(){ getcustgeo(){
echo "-----------------------------------------------" echo "-----------------------------------------------"
echo "正在获取数据库文件…………" echo "正在获取数据库文件…………"
webget "$TMPDIR"/$geoname $custgeolink webget "$TMPDIR"/$geoname $custgeolink
@@ -504,8 +504,9 @@ setcustgeo(){ #下载自定义数据库文件
echo -e "\033[32m$geotype数据库文件下载成功\033[0m" echo -e "\033[32m$geotype数据库文件下载成功\033[0m"
fi fi
sleep 1 sleep 1
} }
checkcustgeo(){
checkcustgeo(){
[ "$api_tag" = "latest" ] && api_url=latest || api_url="tags/$api_tag" [ "$api_tag" = "latest" ] && api_url=latest || api_url="tags/$api_tag"
[ ! -s "$TMPDIR"/geo.list ] && { [ ! -s "$TMPDIR"/geo.list ] && {
echo -e "\033[32m正在查找可更新的数据库文件\033[0m" echo -e "\033[32m正在查找可更新的数据库文件\033[0m"
@@ -545,7 +546,11 @@ setcustgeo(){ #下载自定义数据库文件
echo -e "\033[31m查找失败请尽量在服务启动后再使用本功能\033[0m" echo -e "\033[31m查找失败请尽量在服务启动后再使用本功能\033[0m"
sleep 1 sleep 1
fi fi
} }
# 下载自定义数据库文件
setcustgeo() {
while true; do
rm -rf "$TMPDIR"/geo.list rm -rf "$TMPDIR"/geo.list
echo "-----------------------------------------------" echo "-----------------------------------------------"
echo -e "\033[36m此处数据库均源自互联网采集此处致谢各位开发者\033[0m" echo -e "\033[36m此处数据库均源自互联网采集此处致谢各位开发者\033[0m"
@@ -564,50 +569,50 @@ setcustgeo(){ #下载自定义数据库文件
echo -e " 0 返回上级菜单" echo -e " 0 返回上级菜单"
read -p "请输入对应数字 > " num read -p "请输入对应数字 > " num
case "$num" in case "$num" in
0) ""|0)
break
;; ;;
1) 1)
project=MetaCubeX/meta-rules-dat project=MetaCubeX/meta-rules-dat
api_tag=latest api_tag=latest
checkcustgeo checkcustgeo
setcustgeo
;; ;;
2) 2)
project=DustinWin/ruleset_geodata project=DustinWin/ruleset_geodata
api_tag=mihomo-geodata api_tag=mihomo-geodata
checkcustgeo checkcustgeo
setcustgeo
;; ;;
3) 3)
project=DustinWin/ruleset_geodata project=DustinWin/ruleset_geodata
api_tag=sing-box-ruleset api_tag=sing-box-ruleset
checkcustgeo checkcustgeo
setcustgeo
;; ;;
4) 4)
project=DustinWin/ruleset_geodata project=DustinWin/ruleset_geodata
api_tag=mihomo-ruleset api_tag=mihomo-ruleset
checkcustgeo checkcustgeo
setcustgeo
;; ;;
5) 5)
project=Loyalsoldier/geoip project=Loyalsoldier/geoip
api_tag=latest api_tag=latest
checkcustgeo checkcustgeo
setcustgeo
;; ;;
9) 9)
read -p "请输入自定义数据库的链接地址 > " link read -p "请输入自定义数据库的链接地址 > " link
[ -n "$link" ] && custgeolink="$link" [ -n "$link" ] && custgeolink="$link"
getgeo getgeo
setcustgeo
;; ;;
*) *)
errornum errornum
sleep 1
break
;; ;;
esac esac
done
} }
setgeo(){
setgeo() {
while true; do
. $CFG_PATH > /dev/null . $CFG_PATH > /dev/null
[ -n "$cn_mini_v" ] && geo_type_des=精简版 || geo_type_des=全球版 [ -n "$cn_mini_v" ] && geo_type_des=精简版 || geo_type_des=全球版
echo "-----------------------------------------------" echo "-----------------------------------------------"
@@ -630,47 +635,41 @@ setgeo(){
echo "-----------------------------------------------" echo "-----------------------------------------------"
read -p "请输入对应数字 > " num read -p "请输入对应数字 > " num
case "$num" in case "$num" in
0) ""|0)
break
;; ;;
1) 1)
geotype=china_ip_list.txt geotype=china_ip_list.txt
geoname=cn_ip.txt geoname=cn_ip.txt
getgeo getgeo
setgeo
;; ;;
2) 2)
geotype=china_ipv6_list.txt geotype=china_ipv6_list.txt
geoname=cn_ipv6.txt geoname=cn_ipv6.txt
getgeo getgeo
setgeo
;; ;;
3) 3)
geotype=cn_mini.mmdb geotype=cn_mini.mmdb
geoname=Country.mmdb geoname=Country.mmdb
getgeo getgeo
setgeo
;; ;;
4) 4)
geotype=geosite.dat geotype=geosite.dat
geoname=GeoSite.dat geoname=GeoSite.dat
getgeo getgeo
setgeo
;; ;;
5) 5)
geotype=mrs.tar.gz geotype=mrs.tar.gz
geoname=mrs.tar.gz geoname=mrs.tar.gz
getgeo getgeo
setgeo
;; ;;
6) 6)
geotype=srs.tar.gz geotype=srs.tar.gz
geoname=srs.tar.gz geoname=srs.tar.gz
getgeo getgeo
setgeo
;; ;;
8) 8)
setcustgeo setcustgeo
setgeo
;; ;;
9) 9)
echo "-----------------------------------------------" echo "-----------------------------------------------"
@@ -689,13 +688,16 @@ setgeo(){
echo -e "\033[33m所有数据库文件均已清理\033[0m" echo -e "\033[33m所有数据库文件均已清理\033[0m"
sleep 1 sleep 1
} }
setgeo
;; ;;
*) *)
errornum errornum
sleep 1
break
;; ;;
esac esac
done
} }
#Dashboard #Dashboard
getdb(){ getdb(){
dblink="${update_url}/" dblink="${update_url}/"
@@ -892,22 +894,26 @@ setcrt(){
sleep 1 sleep 1
fi fi
} }
#安装源
setserver(){ # 写入配置文件
saveserver() {
setconfig update_url "'$update_url'"
setconfig url_id $url_id
setconfig release_type $release_type
echo "-----------------------------------------------"
echo -e "\033[32m源地址切换成功\033[0m"
}
# 安装源
setserver() {
while true; do
[ -z "$release_type" ] && release_name=未指定 [ -z "$release_type" ] && release_name=未指定
[ -n "$release_type" ] && release_name="$release_type(回退)" [ -n "$release_type" ] && release_name="$release_type(回退)"
[ "$release_type" = stable ] && release_name=稳定版 [ "$release_type" = stable ] && release_name=稳定版
[ "$release_type" = master ] && release_name=公测版 [ "$release_type" = master ] && release_name=公测版
[ "$release_type" = dev ] && release_name=开发版 [ "$release_type" = dev ] && release_name=开发版
[ -n "$url_id" ] && url_name=$(grep "$url_id" "$CRASHDIR"/configs/servers.list 2>/dev/null | awk '{print $2}') || url_name="$update_url" [ -n "$url_id" ] && url_name=$(grep "$url_id" "$CRASHDIR"/configs/servers.list 2>/dev/null | awk '{print $2}') || url_name="$update_url"
saveserver(){
#写入配置文件
setconfig update_url "'$update_url'"
setconfig url_id $url_id
setconfig release_type $release_type
echo "-----------------------------------------------"
echo -e "\033[32m源地址切换成功\033[0m"
}
echo "-----------------------------------------------" echo "-----------------------------------------------"
echo -e "\033[30;47m切换ShellCrash版本及更新源地址\033[0m" echo -e "\033[30;47m切换ShellCrash版本及更新源地址\033[0m"
echo -e "当前版本:\033[4;33m$release_name\033[0m 当前源:\033[4;32m$url_name\033[0m" echo -e "当前版本:\033[4;33m$release_name\033[0m 当前源:\033[4;32m$url_name\033[0m"
@@ -924,23 +930,24 @@ setserver(){
echo "-----------------------------------------------" echo "-----------------------------------------------"
read -p "请输入对应字母或数字 > " num read -p "请输入对应字母或数字 > " num
case "$num" in case "$num" in
0) ""|0)
checkupdate=false checkupdate=false
break
;; ;;
[1-99]) [1-99])
url_id_new=$(grep -E "^1|$release_name" "$CRASHDIR"/configs/servers.list | sed -n ""$num"p" | awk '{print $1}') url_id_new=$(grep -E "^1|$release_name" "$CRASHDIR"/configs/servers.list | sed -n ""$num"p" | awk '{print $1}')
if [ -z "$url_id_new" ];then if [ -z "$url_id_new" ];then
errornum errornum
sleep 1 sleep 1
setserver continue
elif [ "$url_id_new" -ge 200 ];then elif [ "$url_id_new" -ge 200 ];then
update_url=$(grep -E "^1|$release_name" "$CRASHDIR"/configs/servers.list | sed -n ""$num"p" | awk '{print $3}') update_url=$(grep -E "^1|$release_name" "$CRASHDIR"/configs/servers.list | sed -n ""$num"p" | awk '{print $3}')
url_id='' url_id=''
saveserver continue
else else
url_id=$url_id_new url_id=$url_id_new
update_url='' update_url=''
saveserver continue
fi fi
unset url_id_new unset url_id_new
;; ;;
@@ -948,13 +955,11 @@ setserver(){
release_type=stable release_type=stable
[ -z "$url_id" ] && url_id=101 [ -z "$url_id" ] && url_id=101
saveserver saveserver
setserver
;; ;;
b) b)
release_type=master release_type=master
[ -z "$url_id" ] && url_id=101 [ -z "$url_id" ] && url_id=101
saveserver saveserver
setserver
;; ;;
c) c)
echo "-----------------------------------------------" echo "-----------------------------------------------"
@@ -967,7 +972,6 @@ setserver(){
[ -z "$url_id" ] && url_id=101 [ -z "$url_id" ] && url_id=101
saveserver saveserver
fi fi
setserver
;; ;;
d) d)
echo "-----------------------------------------------" echo "-----------------------------------------------"
@@ -992,7 +996,7 @@ setserver(){
echo -e " 0 返回上级菜单" echo -e " 0 返回上级菜单"
read -p "请输入对应数字 > " num read -p "请输入对应数字 > " num
if [ -z "$num" -o "$num" = 0 ]; then if [ -z "$num" -o "$num" = 0 ]; then
setserver continue
elif [ $num -le $(cat "$TMPDIR"/release_version 2>/dev/null | awk 'END{print NR}') ]; then elif [ $num -le $(cat "$TMPDIR"/release_version 2>/dev/null | awk 'END{print NR}') ]; then
release_type=$(cat "$TMPDIR"/release_version | awk '{print $1}' | sed -n "$num"p) release_type=$(cat "$TMPDIR"/release_version | awk '{print $1}' | sed -n "$num"p)
update_url='' update_url=''
@@ -1001,23 +1005,26 @@ setserver(){
echo "-----------------------------------------------" echo "-----------------------------------------------"
errornum errornum
sleep 1 sleep 1
setserver continue
fi fi
else else
echo "-----------------------------------------------" echo "-----------------------------------------------"
echo -e "\033[31m版本回退信息获取失败请尝试更换其他安装源\033[0m" echo -e "\033[31m版本回退信息获取失败请尝试更换其他安装源\033[0m"
sleep 1 sleep 1
setserver continue
fi fi
rm -rf "$TMPDIR"/release_version rm -rf "$TMPDIR"/release_version
else else
echo -e "\033[31m当前源不支持版本回退请尝试更换其他安装源\033[0m" echo -e "\033[31m当前源不支持版本回退请尝试更换其他安装源\033[0m"
sleep 1 sleep 1
setserver continue
fi fi
;; ;;
*) *)
errornum errornum
sleep 1
break
;; ;;
esac esac
done
} }