mirror of
https://github.com/juewuy/ShellCrash.git
synced 2026-03-13 00:41:20 +00:00
Merge pull request #1113 from sofia-riese/patch-4
refactor(setproviders): replace recursion with while loop
This commit is contained in:
@@ -535,9 +535,12 @@ EOF
|
|||||||
rm -rf "$TMPDIR"/providers
|
rm -rf "$TMPDIR"/providers
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
setproviders(){ #自定义providers
|
|
||||||
|
# 自定义providers
|
||||||
|
setproviders() {
|
||||||
. "$CRASHDIR"/libs/set_cron.sh
|
. "$CRASHDIR"/libs/set_cron.sh
|
||||||
. "$CRASHDIR"/libs/web_get_bin.sh
|
. "$CRASHDIR"/libs/web_get_bin.sh
|
||||||
|
while true; do
|
||||||
# 获取模版名称
|
# 获取模版名称
|
||||||
if [ -z "$(grep "provider_temp_${coretype}" "$CRASHDIR"/configs/ShellCrash.cfg)" ]; then
|
if [ -z "$(grep "provider_temp_${coretype}" "$CRASHDIR"/configs/ShellCrash.cfg)" ]; then
|
||||||
provider_temp_des=$(sed -n "1 p" "$CRASHDIR"/configs/${coretype}_providers.list | awk '{print $1}')
|
provider_temp_des=$(sed -n "1 p" "$CRASHDIR"/configs/${coretype}_providers.list | awk '{print $1}')
|
||||||
@@ -565,7 +568,8 @@ setproviders(){ #自定义providers
|
|||||||
echo -e " 0 返回上级菜单"
|
echo -e " 0 返回上级菜单"
|
||||||
read -p "请输入对应字母或数字 > " num
|
read -p "请输入对应字母或数字 > " num
|
||||||
case "$num" in
|
case "$num" in
|
||||||
0)
|
"" | 0)
|
||||||
|
break
|
||||||
;;
|
;;
|
||||||
[1-9] | [1-9][0-9])
|
[1-9] | [1-9][0-9])
|
||||||
provider_name=$(sed -n "$num p" "$CRASHDIR"/configs/providers.cfg | awk '{print $1}')
|
provider_name=$(sed -n "$num p" "$CRASHDIR"/configs/providers.cfg | awk '{print $1}')
|
||||||
@@ -582,8 +586,7 @@ setproviders(){ #自定义providers
|
|||||||
echo -e " 0 返回上级菜单"
|
echo -e " 0 返回上级菜单"
|
||||||
read -p "请选择需要执行的操作 > " num
|
read -p "请选择需要执行的操作 > " num
|
||||||
case "$num" in
|
case "$num" in
|
||||||
0)
|
"" | 0) ;;
|
||||||
;;
|
|
||||||
1)
|
1)
|
||||||
read -p "请输入名称或者代号(不可重复,不支持纯数字) > " name
|
read -p "请输入名称或者代号(不可重复,不支持纯数字) > " name
|
||||||
if [ -n "$name" ] && [ -z "$(echo "$name" | grep -E '^[0-9]+$')" ] && ! grep -q "$name" "$CRASHDIR"/configs/providers.cfg; then
|
if [ -n "$name" ] && [ -z "$(echo "$name" | grep -E '^[0-9]+$')" ] && ! grep -q "$name" "$CRASHDIR"/configs/providers.cfg; then
|
||||||
@@ -611,9 +614,8 @@ setproviders(){ #自定义providers
|
|||||||
errornum
|
errornum
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
sleep 1
|
|
||||||
fi
|
fi
|
||||||
setproviders
|
sleep 1
|
||||||
;;
|
;;
|
||||||
a)
|
a)
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
@@ -638,7 +640,6 @@ setproviders(){ #自定义providers
|
|||||||
}
|
}
|
||||||
[ "$?" != 0 ] && echo -e "\033[31m输入错误,操作已取消!\033[0m"
|
[ "$?" != 0 ] && echo -e "\033[31m输入错误,操作已取消!\033[0m"
|
||||||
sleep 1
|
sleep 1
|
||||||
setproviders
|
|
||||||
;;
|
;;
|
||||||
c)
|
c)
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
@@ -653,7 +654,6 @@ setproviders(){ #自定义providers
|
|||||||
echo -e "\033[31m你还未添加链接或本地配置文件,请先添加!\033[0m"
|
echo -e "\033[31m你还未添加链接或本地配置文件,请先添加!\033[0m"
|
||||||
sleep 1
|
sleep 1
|
||||||
fi
|
fi
|
||||||
setproviders
|
|
||||||
;;
|
;;
|
||||||
b)
|
b)
|
||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
@@ -666,8 +666,7 @@ setproviders(){ #自定义providers
|
|||||||
echo "-----------------------------------------------"
|
echo "-----------------------------------------------"
|
||||||
read -p "请输入对应字母或数字 > " num
|
read -p "请输入对应字母或数字 > " num
|
||||||
case "$num" in
|
case "$num" in
|
||||||
0)
|
"" | 0) ;;
|
||||||
;;
|
|
||||||
a)
|
a)
|
||||||
read -p "请输入模版的路径(绝对路径) > " dir
|
read -p "请输入模版的路径(绝对路径) > " dir
|
||||||
if [ -s $dir ]; then
|
if [ -s $dir ]; then
|
||||||
@@ -683,28 +682,29 @@ setproviders(){ #自定义providers
|
|||||||
provider_temp_file=$(sed -n "$num p" "$CRASHDIR"/configs/${coretype}_providers.list 2>/dev/null | awk '{print $2}')
|
provider_temp_file=$(sed -n "$num p" "$CRASHDIR"/configs/${coretype}_providers.list 2>/dev/null | awk '{print $2}')
|
||||||
if [ -z "$provider_temp_file" ]; then
|
if [ -z "$provider_temp_file" ]; then
|
||||||
errornum
|
errornum
|
||||||
|
sleep 1
|
||||||
else
|
else
|
||||||
setconfig provider_temp_${coretype} $provider_temp_file
|
setconfig provider_temp_${coretype} $provider_temp_file
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
setproviders
|
|
||||||
;;
|
;;
|
||||||
d)
|
d)
|
||||||
read -p "确认清空全部链接?(1/0) > " res
|
read -p "确认清空全部链接?(1/0) > " res
|
||||||
[ "$res" = "1" ] && rm -rf "$CRASHDIR"/configs/providers.cfg
|
[ "$res" = "1" ] && rm -rf "$CRASHDIR"/configs/providers.cfg
|
||||||
setproviders
|
|
||||||
;;
|
;;
|
||||||
e)
|
e)
|
||||||
echo -e "\033[33m将清空 $CRASHDIR/providers 目录下所有内容\033[0m"
|
echo -e "\033[33m将清空 $CRASHDIR/providers 目录下所有内容\033[0m"
|
||||||
read -p "是否继续?(1/0) > " res
|
read -p "是否继续?(1/0) > " res
|
||||||
[ "$res" = "1" ] && rm -rf "$CRASHDIR"/providers
|
[ "$res" = "1" ] && rm -rf "$CRASHDIR"/providers
|
||||||
setproviders
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
errornum
|
errornum
|
||||||
|
sleep 1
|
||||||
|
break
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
set_clash_adv(){ #自定义clash高级规则
|
set_clash_adv(){ #自定义clash高级规则
|
||||||
|
|||||||
Reference in New Issue
Block a user