mirror of
https://github.com/juewuy/ShellCrash.git
synced 2026-03-12 00:11:31 +00:00
Merge pull request #1086 from sofia-riese/patch-1
Keep addressing function self-invocation
This commit is contained in:
@@ -40,7 +40,7 @@ upgrade() {
|
|||||||
echo -e " 8 \033[32m配置自动更新\033[0m"
|
echo -e " 8 \033[32m配置自动更新\033[0m"
|
||||||
echo -e " 9 \033[31m卸载ShellCrash\033[0m"
|
echo -e " 9 \033[31m卸载ShellCrash\033[0m"
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
echo -e "99 \033[36m鸣谢!\033[0m"
|
echo -e " 99 \033[36m鸣谢!\033[0m"
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
echo -e " 0 返回上级菜单"
|
echo -e " 0 返回上级菜单"
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
@@ -490,7 +490,7 @@ setcore() {
|
|||||||
getgeo(){ #下载Geo文件
|
getgeo(){ #下载Geo文件
|
||||||
#生成链接
|
#生成链接
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
echo 正在从服务器获取数据库文件…………
|
echo "正在从服务器获取数据库文件…………"
|
||||||
get_bin "$TMPDIR"/${geoname} bin/geodata/$geotype
|
get_bin "$TMPDIR"/${geoname} bin/geodata/$geotype
|
||||||
if [ "$?" = "1" ];then
|
if [ "$?" = "1" ];then
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
@@ -515,6 +515,7 @@ getgeo(){ #下载Geo文件
|
|||||||
fi
|
fi
|
||||||
sleep 1
|
sleep 1
|
||||||
}
|
}
|
||||||
|
|
||||||
getcustgeo(){
|
getcustgeo(){
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
echo "正在获取数据库文件…………"
|
echo "正在获取数据库文件…………"
|
||||||
@@ -534,46 +535,53 @@ getcustgeo(){
|
|||||||
fi
|
fi
|
||||||
sleep 1
|
sleep 1
|
||||||
}
|
}
|
||||||
checkcustgeo(){
|
|
||||||
[ "$api_tag" = "latest" ] && api_url=latest || api_url="tags/$api_tag"
|
checkcustgeo() {
|
||||||
[ ! -s "$TMPDIR"/geo.list ] && {
|
while true; do
|
||||||
echo -e "\033[32m正在查找可更新的数据库文件!\033[0m"
|
[ "$api_tag" = "latest" ] && api_url=latest || api_url="tags/$api_tag"
|
||||||
webget "$TMPDIR"/github_api https://api.github.com/repos/${project}/releases/${api_url}
|
[ ! -s "$TMPDIR"/geo.list ] && {
|
||||||
release_tag=$(cat "$TMPDIR"/github_api | grep '"tag_name":' | awk -F '"' '{print $4}')
|
echo -e "\033[32m正在查找可更新的数据库文件!\033[0m"
|
||||||
cat "$TMPDIR"/github_api | grep "browser_download_url" | grep -oE 'releases/download.*' | grep -oiE 'geosite.*\.dat"$|country.*\.mmdb"$|.*.mrs|.*.srs' | sed 's|.*/||' | sed 's/"//' > "$TMPDIR"/geo.list
|
webget "$TMPDIR"/github_api https://api.github.com/repos/${project}/releases/${api_url}
|
||||||
rm -rf "$TMPDIR"/github_api
|
release_tag=$(cat "$TMPDIR"/github_api | grep '"tag_name":' | awk -F '"' '{print $4}')
|
||||||
}
|
cat "$TMPDIR"/github_api | grep "browser_download_url" | grep -oE 'releases/download.*' | grep -oiE 'geosite.*\.dat"$|country.*\.mmdb"$|.*.mrs|.*.srs' | sed 's|.*/||' | sed 's/"//' >"$TMPDIR"/geo.list
|
||||||
if [ -s "$TMPDIR"/geo.list ];then
|
rm -rf "$TMPDIR"/github_api
|
||||||
echo -e "请选择需要更新的数据库文件:"
|
}
|
||||||
echo "-----------------------------------------------"
|
if [ -s "$TMPDIR"/geo.list ]; then
|
||||||
cat "$TMPDIR"/geo.list | awk '{print " "NR" "$1}'
|
echo -e "请选择需要更新的数据库文件:"
|
||||||
echo -e " 0 返回上级菜单"
|
echo "-----------------------------------------------"
|
||||||
echo "-----------------------------------------------"
|
cat "$TMPDIR"/geo.list | awk '{print " "NR" "$1}'
|
||||||
read -p "请输入对应数字 > " num
|
echo -e " 0 返回上级菜单"
|
||||||
case "$num" in
|
echo "-----------------------------------------------"
|
||||||
0)
|
read -p "请输入对应数字 > " num
|
||||||
;;
|
case "$num" in
|
||||||
[1-99])
|
"" | 0)
|
||||||
if [ "$num" -le "$(wc -l < "$TMPDIR"/geo.list)" ];then
|
break
|
||||||
geotype=$(sed -n "$num"p "$TMPDIR"/geo.list)
|
;;
|
||||||
[ -n "$(echo $geotype | grep -oiE 'GeoSite.*dat')" ] && geoname=GeoSite.dat
|
[1-99])
|
||||||
[ -n "$(echo $geotype | grep -oiE 'Country.*mmdb')" ] && geoname=Country.mmdb
|
if [ "$num" -le "$(wc -l <"$TMPDIR"/geo.list)" ]; then
|
||||||
[ -n "$(echo $geotype | grep -oiE '.*(.srs|.mrs)')" ] && geoname=$geotype
|
geotype=$(sed -n "$num"p "$TMPDIR"/geo.list)
|
||||||
custgeolink=https://github.com/${project}/releases/download/${release_tag}/${geotype}
|
[ -n "$(echo $geotype | grep -oiE 'GeoSite.*dat')" ] && geoname=GeoSite.dat
|
||||||
getcustgeo
|
[ -n "$(echo $geotype | grep -oiE 'Country.*mmdb')" ] && geoname=Country.mmdb
|
||||||
checkcustgeo
|
[ -n "$(echo $geotype | grep -oiE '.*(.srs|.mrs)')" ] && geoname=$geotype
|
||||||
else
|
custgeolink=https://github.com/${project}/releases/download/${release_tag}/${geotype}
|
||||||
errornum
|
getcustgeo
|
||||||
fi
|
else
|
||||||
;;
|
errornum
|
||||||
*)
|
sleep 1
|
||||||
errornum
|
break
|
||||||
;;
|
fi
|
||||||
esac
|
;;
|
||||||
else
|
*)
|
||||||
echo -e "\033[31m查找失败,请尽量在服务启动后再使用本功能!\033[0m"
|
errornum
|
||||||
sleep 1
|
sleep 1
|
||||||
fi
|
beak
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
echo -e "\033[31m查找失败,请尽量在服务启动后再使用本功能!\033[0m"
|
||||||
|
sleep 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
# 下载自定义数据库文件
|
# 下载自定义数据库文件
|
||||||
|
|||||||
Reference in New Issue
Block a user