mirror of
https://github.com/juewuy/ShellCrash.git
synced 2026-03-10 23:41:22 +00:00
Merge pull request #1065 from nested-universe/patch-2
Continue replace self-invoked with a while true loop
This commit is contained in:
@@ -412,7 +412,7 @@ setcore(){ #内核选择菜单
|
||||
echo "-----------------------------------------------"
|
||||
echo "9 手动指定处理器架构"
|
||||
echo "-----------------------------------------------"
|
||||
echo 0 返回上级菜单
|
||||
echo "0 返回上级菜单"
|
||||
read -p "请输入对应数字 > " num
|
||||
case "$num" in
|
||||
0)
|
||||
@@ -485,7 +485,7 @@ getgeo(){ #下载Geo文件
|
||||
fi
|
||||
sleep 1
|
||||
}
|
||||
setcustgeo(){ #下载自定义数据库文件
|
||||
|
||||
getcustgeo(){
|
||||
echo "-----------------------------------------------"
|
||||
echo "正在获取数据库文件…………"
|
||||
@@ -505,6 +505,7 @@ setcustgeo(){ #下载自定义数据库文件
|
||||
fi
|
||||
sleep 1
|
||||
}
|
||||
|
||||
checkcustgeo(){
|
||||
[ "$api_tag" = "latest" ] && api_url=latest || api_url="tags/$api_tag"
|
||||
[ ! -s "$TMPDIR"/geo.list ] && {
|
||||
@@ -546,6 +547,10 @@ setcustgeo(){ #下载自定义数据库文件
|
||||
sleep 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 下载自定义数据库文件
|
||||
setcustgeo() {
|
||||
while true; do
|
||||
rm -rf "$TMPDIR"/geo.list
|
||||
echo "-----------------------------------------------"
|
||||
echo -e "\033[36m此处数据库均源自互联网采集,此处致谢各位开发者!\033[0m"
|
||||
@@ -564,50 +569,50 @@ setcustgeo(){ #下载自定义数据库文件
|
||||
echo -e " 0 返回上级菜单"
|
||||
read -p "请输入对应数字 > " num
|
||||
case "$num" in
|
||||
0)
|
||||
""|0)
|
||||
break
|
||||
;;
|
||||
1)
|
||||
project=MetaCubeX/meta-rules-dat
|
||||
api_tag=latest
|
||||
checkcustgeo
|
||||
setcustgeo
|
||||
;;
|
||||
2)
|
||||
project=DustinWin/ruleset_geodata
|
||||
api_tag=mihomo-geodata
|
||||
checkcustgeo
|
||||
setcustgeo
|
||||
;;
|
||||
3)
|
||||
project=DustinWin/ruleset_geodata
|
||||
api_tag=sing-box-ruleset
|
||||
checkcustgeo
|
||||
setcustgeo
|
||||
;;
|
||||
4)
|
||||
project=DustinWin/ruleset_geodata
|
||||
api_tag=mihomo-ruleset
|
||||
checkcustgeo
|
||||
setcustgeo
|
||||
;;
|
||||
5)
|
||||
project=Loyalsoldier/geoip
|
||||
api_tag=latest
|
||||
checkcustgeo
|
||||
setcustgeo
|
||||
;;
|
||||
9)
|
||||
read -p "请输入自定义数据库的链接地址 > " link
|
||||
[ -n "$link" ] && custgeolink="$link"
|
||||
getgeo
|
||||
setcustgeo
|
||||
;;
|
||||
*)
|
||||
errornum
|
||||
sleep 1
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
setgeo() {
|
||||
while true; do
|
||||
. $CFG_PATH > /dev/null
|
||||
[ -n "$cn_mini_v" ] && geo_type_des=精简版 || geo_type_des=全球版
|
||||
echo "-----------------------------------------------"
|
||||
@@ -630,47 +635,41 @@ setgeo(){
|
||||
echo "-----------------------------------------------"
|
||||
read -p "请输入对应数字 > " num
|
||||
case "$num" in
|
||||
0)
|
||||
""|0)
|
||||
break
|
||||
;;
|
||||
1)
|
||||
geotype=china_ip_list.txt
|
||||
geoname=cn_ip.txt
|
||||
getgeo
|
||||
setgeo
|
||||
;;
|
||||
2)
|
||||
geotype=china_ipv6_list.txt
|
||||
geoname=cn_ipv6.txt
|
||||
getgeo
|
||||
setgeo
|
||||
;;
|
||||
3)
|
||||
geotype=cn_mini.mmdb
|
||||
geoname=Country.mmdb
|
||||
getgeo
|
||||
setgeo
|
||||
;;
|
||||
4)
|
||||
geotype=geosite.dat
|
||||
geoname=GeoSite.dat
|
||||
getgeo
|
||||
setgeo
|
||||
;;
|
||||
5)
|
||||
geotype=mrs.tar.gz
|
||||
geoname=mrs.tar.gz
|
||||
getgeo
|
||||
setgeo
|
||||
;;
|
||||
6)
|
||||
geotype=srs.tar.gz
|
||||
geoname=srs.tar.gz
|
||||
getgeo
|
||||
setgeo
|
||||
;;
|
||||
8)
|
||||
setcustgeo
|
||||
setgeo
|
||||
;;
|
||||
9)
|
||||
echo "-----------------------------------------------"
|
||||
@@ -689,13 +688,16 @@ setgeo(){
|
||||
echo -e "\033[33m所有数据库文件均已清理!\033[0m"
|
||||
sleep 1
|
||||
}
|
||||
setgeo
|
||||
;;
|
||||
*)
|
||||
errornum
|
||||
sleep 1
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
#Dashboard
|
||||
getdb(){
|
||||
dblink="${update_url}/"
|
||||
@@ -892,22 +894,26 @@ setcrt(){
|
||||
sleep 1
|
||||
fi
|
||||
}
|
||||
#安装源
|
||||
setserver(){
|
||||
[ -z "$release_type" ] && release_name=未指定
|
||||
[ -n "$release_type" ] && release_name="$release_type(回退)"
|
||||
[ "$release_type" = stable ] && release_name=稳定版
|
||||
[ "$release_type" = master ] && 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"
|
||||
saveserver(){
|
||||
|
||||
# 写入配置文件
|
||||
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=未指定
|
||||
[ -n "$release_type" ] && release_name="$release_type(回退)"
|
||||
[ "$release_type" = stable ] && release_name=稳定版
|
||||
[ "$release_type" = master ] && 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"
|
||||
|
||||
echo "-----------------------------------------------"
|
||||
echo -e "\033[30;47m切换ShellCrash版本及更新源地址\033[0m"
|
||||
echo -e "当前版本:\033[4;33m$release_name\033[0m 当前源:\033[4;32m$url_name\033[0m"
|
||||
@@ -924,23 +930,24 @@ setserver(){
|
||||
echo "-----------------------------------------------"
|
||||
read -p "请输入对应字母或数字 > " num
|
||||
case "$num" in
|
||||
0)
|
||||
""|0)
|
||||
checkupdate=false
|
||||
break
|
||||
;;
|
||||
[1-99])
|
||||
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
|
||||
errornum
|
||||
sleep 1
|
||||
setserver
|
||||
continue
|
||||
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}')
|
||||
url_id=''
|
||||
saveserver
|
||||
continue
|
||||
else
|
||||
url_id=$url_id_new
|
||||
update_url=''
|
||||
saveserver
|
||||
continue
|
||||
fi
|
||||
unset url_id_new
|
||||
;;
|
||||
@@ -948,13 +955,11 @@ setserver(){
|
||||
release_type=stable
|
||||
[ -z "$url_id" ] && url_id=101
|
||||
saveserver
|
||||
setserver
|
||||
;;
|
||||
b)
|
||||
release_type=master
|
||||
[ -z "$url_id" ] && url_id=101
|
||||
saveserver
|
||||
setserver
|
||||
;;
|
||||
c)
|
||||
echo "-----------------------------------------------"
|
||||
@@ -967,7 +972,6 @@ setserver(){
|
||||
[ -z "$url_id" ] && url_id=101
|
||||
saveserver
|
||||
fi
|
||||
setserver
|
||||
;;
|
||||
d)
|
||||
echo "-----------------------------------------------"
|
||||
@@ -992,7 +996,7 @@ setserver(){
|
||||
echo -e " 0 返回上级菜单"
|
||||
read -p "请输入对应数字 > " num
|
||||
if [ -z "$num" -o "$num" = 0 ]; then
|
||||
setserver
|
||||
continue
|
||||
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)
|
||||
update_url=''
|
||||
@@ -1001,23 +1005,26 @@ setserver(){
|
||||
echo "-----------------------------------------------"
|
||||
errornum
|
||||
sleep 1
|
||||
setserver
|
||||
continue
|
||||
fi
|
||||
else
|
||||
echo "-----------------------------------------------"
|
||||
echo -e "\033[31m版本回退信息获取失败,请尝试更换其他安装源!\033[0m"
|
||||
sleep 1
|
||||
setserver
|
||||
continue
|
||||
fi
|
||||
rm -rf "$TMPDIR"/release_version
|
||||
else
|
||||
echo -e "\033[31m当前源不支持版本回退,请尝试更换其他安装源!\033[0m"
|
||||
sleep 1
|
||||
setserver
|
||||
continue
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
errornum
|
||||
sleep 1
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user