mirror of
https://github.com/juewuy/ShellCrash.git
synced 2026-03-13 17:01:38 +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 "-----------------------------------------------"
|
||||||
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,7 +485,7 @@ getgeo(){ #下载Geo文件
|
|||||||
fi
|
fi
|
||||||
sleep 1
|
sleep 1
|
||||||
}
|
}
|
||||||
setcustgeo(){ #下载自定义数据库文件
|
|
||||||
getcustgeo(){
|
getcustgeo(){
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
echo "正在获取数据库文件…………"
|
echo "正在获取数据库文件…………"
|
||||||
@@ -505,6 +505,7 @@ setcustgeo(){ #下载自定义数据库文件
|
|||||||
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 ] && {
|
||||||
@@ -546,6 +547,10 @@ setcustgeo(){ #下载自定义数据库文件
|
|||||||
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(){
|
|
||||||
[ -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 update_url "'$update_url'"
|
||||||
setconfig url_id $url_id
|
setconfig url_id $url_id
|
||||||
setconfig release_type $release_type
|
setconfig release_type $release_type
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
echo -e "\033[32m源地址切换成功!\033[0m"
|
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 "-----------------------------------------------"
|
||||||
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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user