Merge pull request #1086 from sofia-riese/patch-1

Keep addressing function self-invocation
This commit is contained in:
juewuy
2026-01-07 17:51:34 +08:00
committed by GitHub

View File

@@ -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,16 +535,18 @@ getcustgeo(){
fi fi
sleep 1 sleep 1
} }
checkcustgeo(){
checkcustgeo() {
while true; do
[ "$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"
webget "$TMPDIR"/github_api https://api.github.com/repos/${project}/releases/${api_url} webget "$TMPDIR"/github_api https://api.github.com/repos/${project}/releases/${api_url}
release_tag=$(cat "$TMPDIR"/github_api | grep '"tag_name":' | awk -F '"' '{print $4}') 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 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
rm -rf "$TMPDIR"/github_api rm -rf "$TMPDIR"/github_api
} }
if [ -s "$TMPDIR"/geo.list ];then if [ -s "$TMPDIR"/geo.list ]; then
echo -e "请选择需要更新的数据库文件:" echo -e "请选择需要更新的数据库文件:"
echo "-----------------------------------------------" echo "-----------------------------------------------"
cat "$TMPDIR"/geo.list | awk '{print " "NR" "$1}' cat "$TMPDIR"/geo.list | awk '{print " "NR" "$1}'
@@ -551,29 +554,34 @@ checkcustgeo(){
echo "-----------------------------------------------" echo "-----------------------------------------------"
read -p "请输入对应数字 > " num read -p "请输入对应数字 > " num
case "$num" in case "$num" in
0) "" | 0)
break
;; ;;
[1-99]) [1-99])
if [ "$num" -le "$(wc -l < "$TMPDIR"/geo.list)" ];then if [ "$num" -le "$(wc -l <"$TMPDIR"/geo.list)" ]; then
geotype=$(sed -n "$num"p "$TMPDIR"/geo.list) geotype=$(sed -n "$num"p "$TMPDIR"/geo.list)
[ -n "$(echo $geotype | grep -oiE 'GeoSite.*dat')" ] && geoname=GeoSite.dat [ -n "$(echo $geotype | grep -oiE 'GeoSite.*dat')" ] && geoname=GeoSite.dat
[ -n "$(echo $geotype | grep -oiE 'Country.*mmdb')" ] && geoname=Country.mmdb [ -n "$(echo $geotype | grep -oiE 'Country.*mmdb')" ] && geoname=Country.mmdb
[ -n "$(echo $geotype | grep -oiE '.*(.srs|.mrs)')" ] && geoname=$geotype [ -n "$(echo $geotype | grep -oiE '.*(.srs|.mrs)')" ] && geoname=$geotype
custgeolink=https://github.com/${project}/releases/download/${release_tag}/${geotype} custgeolink=https://github.com/${project}/releases/download/${release_tag}/${geotype}
getcustgeo getcustgeo
checkcustgeo
else else
errornum errornum
sleep 1
break
fi fi
;; ;;
*) *)
errornum errornum
sleep 1
beak
;; ;;
esac esac
else else
echo -e "\033[31m查找失败请尽量在服务启动后再使用本功能\033[0m" echo -e "\033[31m查找失败请尽量在服务启动后再使用本功能\033[0m"
sleep 1 sleep 1
fi fi
done
} }
# 下载自定义数据库文件 # 下载自定义数据库文件