mirror of
https://github.com/juewuy/ShellCrash.git
synced 2026-03-13 08:51:30 +00:00
Merge pull request #1179 from sofia-riese/redesign-uninstall
feat(uninstall.sh): redesign static text menu
This commit is contained in:
@@ -250,6 +250,7 @@ settings() {
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
separator_line "="
|
separator_line "="
|
||||||
|
line_break
|
||||||
sleep 1
|
sleep 1
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
[ -n "$__IS_MODULE_6_CORECONFIG_LOADED" ] && return
|
[ -n "$__IS_MODULE_6_CORECONFIG_LOADED" ] && return
|
||||||
__IS_MODULE_6_CORECONFIG_LOADED=1
|
__IS_MODULE_6_CORECONFIG_LOADED=1
|
||||||
|
|
||||||
if echo "$crashcore" | grep -q 'singbox';then
|
if echo "$crashcore" | grep -q 'singbox'; then
|
||||||
CONFIG_PATH="$CRASHDIR"/yamls/config.json
|
CONFIG_PATH="$CRASHDIR"/yamls/config.json
|
||||||
else
|
else
|
||||||
CONFIG_PATH="$CRASHDIR"/jsons/config.yaml
|
CONFIG_PATH="$CRASHDIR"/jsons/config.yaml
|
||||||
@@ -13,7 +13,7 @@ fi
|
|||||||
# 配置文件主界面
|
# 配置文件主界面
|
||||||
set_core_config() {
|
set_core_config() {
|
||||||
while true; do
|
while true; do
|
||||||
common_tittle "\033[30;47m配置文件管理\033[0m"
|
format_box "\033[30;47m配置文件管理\033[0m"
|
||||||
[ -s "$CRASHDIR"/configs/providers.cfg ] || [ -s "$CRASHDIR"/configs/providers_uri.cfg ] && {
|
[ -s "$CRASHDIR"/configs/providers.cfg ] || [ -s "$CRASHDIR"/configs/providers_uri.cfg ] && {
|
||||||
echo -e "\033[36m输入数字可管理对应提供者\033[0m"
|
echo -e "\033[36m输入数字可管理对应提供者\033[0m"
|
||||||
cat "$CRASHDIR"/configs/providers.cfg "$CRASHDIR"/configs/providers_uri.cfg 2>/dev/null |
|
cat "$CRASHDIR"/configs/providers.cfg "$CRASHDIR"/configs/providers_uri.cfg 2>/dev/null |
|
||||||
@@ -34,7 +34,7 @@ set_core_config() {
|
|||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
[1-9] | [1-9][0-9])
|
[1-9] | [1-9][0-9])
|
||||||
line=$(cat "$CRASHDIR"/configs/providers.cfg "$CRASHDIR"/configs/providers_uri.cfg 2>/dev/null |sed -n "$num p")
|
line=$(cat "$CRASHDIR"/configs/providers.cfg "$CRASHDIR"/configs/providers_uri.cfg 2>/dev/null | sed -n "$num p")
|
||||||
setproviders
|
setproviders
|
||||||
;;
|
;;
|
||||||
a)
|
a)
|
||||||
@@ -42,7 +42,7 @@ set_core_config() {
|
|||||||
setproviders
|
setproviders
|
||||||
;;
|
;;
|
||||||
b)
|
b)
|
||||||
if [ -s "$CRASHDIR"/configs/providers.cfg ] || [ -s "$CRASHDIR"/configs/providers_uri.cfg ];then
|
if [ -s "$CRASHDIR"/configs/providers.cfg ] || [ -s "$CRASHDIR"/configs/providers_uri.cfg ]; then
|
||||||
if [ "$crashcore" = meta ] || [ "$crashcore" = singboxr ]; then
|
if [ "$crashcore" = meta ] || [ "$crashcore" = singboxr ]; then
|
||||||
. "$CRASHDIR"/menus/providers.sh
|
. "$CRASHDIR"/menus/providers.sh
|
||||||
providers
|
providers
|
||||||
@@ -54,7 +54,7 @@ set_core_config() {
|
|||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
c)
|
c)
|
||||||
if [ -s "$CRASHDIR"/configs/providers.cfg ] || [ -s "$CRASHDIR"/configs/providers_uri.cfg ];then
|
if [ -s "$CRASHDIR"/configs/providers.cfg ] || [ -s "$CRASHDIR"/configs/providers_uri.cfg ]; then
|
||||||
. "$CRASHDIR"/menus/subconverter.sh
|
. "$CRASHDIR"/menus/subconverter.sh
|
||||||
subconverter
|
subconverter
|
||||||
else
|
else
|
||||||
@@ -115,12 +115,18 @@ setproviders() {
|
|||||||
case "$(echo "$line" | cut -d ' ' -f 2)" in
|
case "$(echo "$line" | cut -d ' ' -f 2)" in
|
||||||
http* | ./providers*)
|
http* | ./providers*)
|
||||||
set -- $line
|
set -- $line
|
||||||
name=$1; link=$2; interval=$3; interval2=$4
|
name=$1
|
||||||
ua=$5; exclude=$6; include=$7
|
link=$2
|
||||||
|
interval=$3
|
||||||
|
interval2=$4
|
||||||
|
ua=$5
|
||||||
|
exclude=$6
|
||||||
|
include=$7
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
set -- $line
|
set -- $line
|
||||||
name=$1; link_uri=$2;
|
name=$1
|
||||||
|
link_uri=$2
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
[ -z "$interval" ] && interval=3
|
[ -z "$interval" ] && interval=3
|
||||||
@@ -128,7 +134,7 @@ setproviders() {
|
|||||||
[ -z "$ua" ] && ua='clash.meta'
|
[ -z "$ua" ] && ua='clash.meta'
|
||||||
while true; do
|
while true; do
|
||||||
link_info=$(echo "$link$link_uri" | cut -c 1-30)
|
link_info=$(echo "$link$link_uri" | cut -c 1-30)
|
||||||
common_tittle "\033[36m支持添加订阅链接/分享链接/本地文件作为提供者\033[0m"
|
format_box "\033[36m支持添加订阅链接/分享链接/本地文件作为提供者\033[0m"
|
||||||
content_line "1) 设置\033[36m名称或代号\033[0m \033[32m$name\033[0m"
|
content_line "1) 设置\033[36m名称或代号\033[0m \033[32m$name\033[0m"
|
||||||
content_line "2) 设置\033[32m链接或路径\033[0m: \033[36m$link_info...\033[0m"
|
content_line "2) 设置\033[32m链接或路径\033[0m: \033[36m$link_info...\033[0m"
|
||||||
[ -n "$link" ] && {
|
[ -n "$link" ] && {
|
||||||
@@ -161,7 +167,7 @@ setproviders() {
|
|||||||
separator_line "-"
|
separator_line "-"
|
||||||
read -p "请输入具体名称或代号 > " text
|
read -p "请输入具体名称或代号 > " text
|
||||||
text=$(echo $text | sed 's/ //g') #去空格
|
text=$(echo $text | sed 's/ //g') #去空格
|
||||||
if [ -n "$text" ] && [ -z "$(echo "$text" | grep -E '^[0-9]+$')" ] && ! grep -q "$text" "$CRASHDIR"/configs/providers.cfg;then
|
if [ -n "$text" ] && [ -z "$(echo "$text" | grep -E '^[0-9]+$')" ] && ! grep -q "$text" "$CRASHDIR"/configs/providers.cfg; then
|
||||||
name="$text"
|
name="$text"
|
||||||
else
|
else
|
||||||
error_input
|
error_input
|
||||||
@@ -175,13 +181,13 @@ setproviders() {
|
|||||||
separator_line "-"
|
separator_line "-"
|
||||||
read -p "请输入具体链接或文件名 > " text
|
read -p "请输入具体链接或文件名 > " text
|
||||||
text=$(echo "$text" | sed 's/ //g') #去空格
|
text=$(echo "$text" | sed 's/ //g') #去空格
|
||||||
if echo "$text" | grep -q '^http';then
|
if echo "$text" | grep -q '^http'; then
|
||||||
text=$(echo "$text" | sed 's/ *(.*)//g; s/#.*//g') #处理注释及超链接
|
text=$(echo "$text" | sed 's/ *(.*)//g; s/#.*//g') #处理注释及超链接
|
||||||
link="$text"
|
link="$text"
|
||||||
elif [ -n "$(echo $text | grep -E '^ss|vmess|vless|trojan|tuic|anytls|shadowtls|hysteria(2)')" ];then
|
elif [ -n "$(echo $text | grep -E '^ss|vmess|vless|trojan|tuic|anytls|shadowtls|hysteria(2)')" ]; then
|
||||||
link_uri=$(echo "$text" | sed 's/#.*//g') # 删除注释
|
link_uri=$(echo "$text" | sed 's/#.*//g') # 删除注释
|
||||||
[ -z "$name" ] && name=$(echo "$text" | grep -o '#.*$' | cut -c2-)
|
[ -z "$name" ] && name=$(echo "$text" | grep -o '#.*$' | cut -c2-)
|
||||||
elif [ -f "$CRASHDIR/providers/$text" ];then
|
elif [ -f "$CRASHDIR/providers/$text" ]; then
|
||||||
link="./providers/$text"
|
link="./providers/$text"
|
||||||
else
|
else
|
||||||
error_input
|
error_input
|
||||||
@@ -189,7 +195,7 @@ setproviders() {
|
|||||||
;;
|
;;
|
||||||
3)
|
3)
|
||||||
read -p "请输入健康检查间隔(单位:分钟) > " num
|
read -p "请输入健康检查间隔(单位:分钟) > " num
|
||||||
if [ -n "$num" ];then
|
if [ -n "$num" ]; then
|
||||||
interval="$num"
|
interval="$num"
|
||||||
else
|
else
|
||||||
errornum
|
errornum
|
||||||
@@ -197,7 +203,7 @@ setproviders() {
|
|||||||
;;
|
;;
|
||||||
4)
|
4)
|
||||||
read -p "请输入自动更新间隔(单位:小时) > " num
|
read -p "请输入自动更新间隔(单位:小时) > " num
|
||||||
if [ -n "$num" ];then
|
if [ -n "$num" ]; then
|
||||||
interval2="$num"
|
interval2="$num"
|
||||||
else
|
else
|
||||||
errornum
|
errornum
|
||||||
@@ -205,7 +211,7 @@ setproviders() {
|
|||||||
;;
|
;;
|
||||||
5)
|
5)
|
||||||
read -p "请输入需要排除的节点关键字(支持正则) > " text
|
read -p "请输入需要排除的节点关键字(支持正则) > " text
|
||||||
if [ -n "$text" ];then
|
if [ -n "$text" ]; then
|
||||||
exclude="$text"
|
exclude="$text"
|
||||||
else
|
else
|
||||||
error_input
|
error_input
|
||||||
@@ -213,7 +219,7 @@ setproviders() {
|
|||||||
;;
|
;;
|
||||||
6)
|
6)
|
||||||
read -p "请输入需要筛选使用的节点关键字(支持正则) > " text
|
read -p "请输入需要筛选使用的节点关键字(支持正则) > " text
|
||||||
if [ -n "$text" ];then
|
if [ -n "$text" ]; then
|
||||||
include="$text"
|
include="$text"
|
||||||
else
|
else
|
||||||
error_input
|
error_input
|
||||||
@@ -221,7 +227,7 @@ setproviders() {
|
|||||||
;;
|
;;
|
||||||
7)
|
7)
|
||||||
read -p "请输入浏览器UA > " text
|
read -p "请输入浏览器UA > " text
|
||||||
if [ -n "$text" ];then
|
if [ -n "$text" ]; then
|
||||||
ua="$text"
|
ua="$text"
|
||||||
else
|
else
|
||||||
error_input
|
error_input
|
||||||
@@ -232,7 +238,7 @@ setproviders() {
|
|||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
b)
|
b)
|
||||||
if echo "$link" | grep -q '^http';then
|
if echo "$link" | grep -q '^http'; then
|
||||||
addproviders
|
addproviders
|
||||||
. "$CRASHDIR"/menus/providers.sh
|
. "$CRASHDIR"/menus/providers.sh
|
||||||
gen_${coretype}_providers "$name" "$link" "$interval" "$interval2" "$exclude" "$include"
|
gen_${coretype}_providers "$name" "$link" "$interval" "$interval2" "$exclude" "$include"
|
||||||
@@ -241,7 +247,7 @@ setproviders() {
|
|||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
c)
|
c)
|
||||||
if [ -n "$name" ] && [ -n "$link$link_uri" ];then
|
if [ -n "$name" ] && [ -n "$link$link_uri" ]; then
|
||||||
addproviders
|
addproviders
|
||||||
Url="$link$link_uri"
|
Url="$link$link_uri"
|
||||||
Https=''
|
Https=''
|
||||||
@@ -254,25 +260,25 @@ setproviders() {
|
|||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
d)
|
d)
|
||||||
if [ -n "$name" ] && [ -n "$link" ];then
|
if [ -n "$name" ] && [ -n "$link" ]; then
|
||||||
sed -i "/^$name /d" "$CRASHDIR"/configs/providers.cfg
|
sed -i "/^$name /d" "$CRASHDIR"/configs/providers.cfg
|
||||||
content_line "\033[32m$COMMON_SUCCESS\033[0m"
|
content_line "\033[32m$COMMON_SUCCESS\033[0m"
|
||||||
elif [ -n "$name" ] && [ -n "$link_uri" ];then
|
elif [ -n "$name" ] && [ -n "$link_uri" ]; then
|
||||||
sed -i "/^$name /d" "$CRASHDIR"/configs/providers_uri.cfg
|
sed -i "/^$name /d" "$CRASHDIR"/configs/providers_uri.cfg
|
||||||
content_line "\033[32m$COMMON_SUCCESS\033[0m"
|
content_line "\033[32m$COMMON_SUCCESS\033[0m"
|
||||||
fi
|
fi
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
e)
|
e)
|
||||||
if [ -n "$link" ];then
|
if [ -n "$link" ]; then
|
||||||
content_line "注意:\033[31m此功能不兼容“跳过证书验证”功能\033[0m"
|
content_line "注意:\033[31m此功能不兼容“跳过证书验证”功能\033[0m"
|
||||||
content_line "\033[31m请确认你完全理解自己在做什么\033[0m"
|
content_line "\033[31m请确认你完全理解自己在做什么\033[0m"
|
||||||
read -p "我确认遇到问题可以自行解决(1/0) > " res
|
read -p "我确认遇到问题可以自行解决(1/0) > " res
|
||||||
[ "$res" = "1" ] && {
|
[ "$res" = "1" ] && {
|
||||||
if [ -s "$CRASHDIR/$link" ];then
|
if [ -s "$CRASHDIR/$link" ]; then
|
||||||
[ -n "$name" ] && addproviders
|
[ -n "$name" ] && addproviders
|
||||||
ln -sf "$CRASHDIR/$link" "$CONFIG_PATH"
|
ln -sf "$CRASHDIR/$link" "$CONFIG_PATH"
|
||||||
elif [ -n "$link" ];then
|
elif [ -n "$link" ]; then
|
||||||
[ -n "$name" ] && addproviders
|
[ -n "$name" ] && addproviders
|
||||||
Https="$link"
|
Https="$link"
|
||||||
Url=''
|
Url=''
|
||||||
@@ -299,10 +305,10 @@ addproviders() {
|
|||||||
[ -s "$CRASHDIR"/configs/providers.cfg ] && sed -i "/^$name /d" "$CRASHDIR"/configs/providers.cfg
|
[ -s "$CRASHDIR"/configs/providers.cfg ] && sed -i "/^$name /d" "$CRASHDIR"/configs/providers.cfg
|
||||||
[ -s "$CRASHDIR"/configs/providers_uri.cfg ] && sed -i "/^$name /d" "$CRASHDIR"/configs/providers_uri.cfg
|
[ -s "$CRASHDIR"/configs/providers_uri.cfg ] && sed -i "/^$name /d" "$CRASHDIR"/configs/providers_uri.cfg
|
||||||
}
|
}
|
||||||
if [ -n "$name" ] && [ -n "$link" ];then
|
if [ -n "$name" ] && [ -n "$link" ]; then
|
||||||
echo "$name $link $interval $interval2 $ua $exclude $include" >>"$CRASHDIR"/configs/providers.cfg
|
echo "$name $link $interval $interval2 $ua $exclude $include" >>"$CRASHDIR"/configs/providers.cfg
|
||||||
return 0
|
return 0
|
||||||
elif [ -n "$name" ] && [ -n "$link_uri" ];then
|
elif [ -n "$name" ] && [ -n "$link_uri" ]; then
|
||||||
echo "$name $link_uri" >>"$CRASHDIR"/configs/providers_uri.cfg
|
echo "$name $link_uri" >>"$CRASHDIR"/configs/providers_uri.cfg
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
@@ -311,13 +317,13 @@ addproviders() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
# 调用工具在线获取配置文件
|
# 调用工具在线获取配置文件
|
||||||
jump_core_config(){
|
jump_core_config() {
|
||||||
. "$CRASHDIR"/starts/core_config.sh && get_core_config
|
. "$CRASHDIR"/starts/core_config.sh && get_core_config
|
||||||
if [ "$?" = 0 ];then
|
if [ "$?" = 0 ]; then
|
||||||
if [ "$inuserguide" != 1 ];then
|
if [ "$inuserguide" != 1 ]; then
|
||||||
read -p "是否启动服务以使配置文件生效?(1/0) > " res
|
read -p "是否启动服务以使配置文件生效?(1/0) > " res
|
||||||
[ "$res" = 1 ] && start_core || main_menu
|
[ "$res" = 1 ] && start_core || main_menu
|
||||||
exit;
|
exit
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
error_report() {
|
error_report() {
|
||||||
line_break
|
line_break
|
||||||
separator_line "="
|
separator_line "="
|
||||||
@@ -7,11 +6,13 @@ error_report() {
|
|||||||
sleep 1
|
sleep 1
|
||||||
}
|
}
|
||||||
|
|
||||||
common_tittle() {
|
format_box() {
|
||||||
line_break
|
line_break
|
||||||
separator_line "="
|
separator_line "="
|
||||||
content_line "$1"
|
for line in "$@"; do
|
||||||
separator_line "-"
|
content_line "$line"
|
||||||
|
done
|
||||||
|
separator_line "="
|
||||||
}
|
}
|
||||||
|
|
||||||
common_back() {
|
common_back() {
|
||||||
|
|||||||
@@ -1,19 +1,30 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# Copyright (C) Juewuy
|
# Copyright (C) Juewuy
|
||||||
|
|
||||||
#卸载
|
# 卸载
|
||||||
uninstall() {
|
uninstall() {
|
||||||
read -p "确认卸载ShellCrash?(警告:该操作不可逆!)[1/0] > " res
|
format_box "\033[31m警告:\033[0m" \
|
||||||
|
"\033[31m该操作不可逆!\033" \
|
||||||
|
"是否确认卸载ShellCrash:"
|
||||||
|
content_line "1) 是"
|
||||||
|
content_line "0) 否"
|
||||||
|
separator_line "="
|
||||||
|
read -r -p "$COMMON_INPUT> " res
|
||||||
if [ "$res" = '1' ]; then
|
if [ "$res" = '1' ]; then
|
||||||
#停止服务
|
# 停止服务
|
||||||
"$CRASHDIR"/start.sh stop 2>/dev/null
|
"$CRASHDIR"/start.sh stop 2>/dev/null
|
||||||
"$CRASHDIR"/start.sh cronset "clash服务" 2>/dev/null
|
"$CRASHDIR"/start.sh cronset "clash服务" 2>/dev/null
|
||||||
"$CRASHDIR"/start.sh cronset "订阅链接" 2>/dev/null
|
"$CRASHDIR"/start.sh cronset "订阅链接" 2>/dev/null
|
||||||
"$CRASHDIR"/start.sh cronset "ShellCrash初始化" 2>/dev/null
|
"$CRASHDIR"/start.sh cronset "ShellCrash初始化" 2>/dev/null
|
||||||
"$CRASHDIR"/start.sh cronset "task.sh" 2>/dev/null
|
"$CRASHDIR"/start.sh cronset "task.sh" 2>/dev/null
|
||||||
#移除安装目录
|
|
||||||
|
# 移除安装目录
|
||||||
if [ -n "$CRASHDIR" ] && [ "$CRASHDIR" != '/' ]; then
|
if [ -n "$CRASHDIR" ] && [ "$CRASHDIR" != '/' ]; then
|
||||||
read -p "是否保留脚本配置及订阅文件?[1/0] > " res
|
format_box "是否保留脚本配置及订阅文件:"
|
||||||
|
content_line "1) 是"
|
||||||
|
content_line "0) 否"
|
||||||
|
separator_line "="
|
||||||
|
read -r -p "$COMMON_INPUT> " res
|
||||||
if [ "$res" = '1' ]; then
|
if [ "$res" = '1' ]; then
|
||||||
mv -f "$CRASHDIR"/configs /tmp/ShellCrash/configs_bak
|
mv -f "$CRASHDIR"/configs /tmp/ShellCrash/configs_bak
|
||||||
mv -f "$CRASHDIR"/yamls /tmp/ShellCrash/yamls_bak
|
mv -f "$CRASHDIR"/yamls /tmp/ShellCrash/yamls_bak
|
||||||
@@ -26,10 +37,10 @@ uninstall() {
|
|||||||
rm -rf "$CRASHDIR"
|
rm -rf "$CRASHDIR"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo -e "\033[31m环境变量配置有误,请尝试手动移除安装目录!\033[0m"
|
error_report "\033[31m环境变量配置有误,请尝试手动移除安装目录!\033[0m"
|
||||||
sleep 1
|
|
||||||
fi
|
fi
|
||||||
#移除其他内容
|
|
||||||
|
# 移除其他内容
|
||||||
sed -i "/alias $my_alias=*/"d /etc/profile 2>/dev/null
|
sed -i "/alias $my_alias=*/"d /etc/profile 2>/dev/null
|
||||||
sed -i '/alias crash=*/'d /etc/profile 2>/dev/null
|
sed -i '/alias crash=*/'d /etc/profile 2>/dev/null
|
||||||
sed -i '/export CRASHDIR=*/'d /etc/profile 2>/dev/null
|
sed -i '/export CRASHDIR=*/'d /etc/profile 2>/dev/null
|
||||||
@@ -54,12 +65,13 @@ uninstall() {
|
|||||||
userdel -r shellcrash 2>/dev/null
|
userdel -r shellcrash 2>/dev/null
|
||||||
nvram set script_usbmount="" 2>/dev/null
|
nvram set script_usbmount="" 2>/dev/null
|
||||||
nvram commit 2>/dev/null
|
nvram commit 2>/dev/null
|
||||||
echo "-----------------------------------------------"
|
format_box "\033[36m已卸载ShellCrash相关文件!有缘再会!\033[0m" \
|
||||||
echo -e "\033[36m已卸载ShellCrash相关文件!有缘再会!\033[0m"
|
"\033[33m请手动关闭当前窗口以重置环境变量!\033[0m"
|
||||||
echo -e "\033[33m请手动关闭当前窗口以重置环境变量!\033[0m"
|
line_break
|
||||||
echo "-----------------------------------------------"
|
sleep 1
|
||||||
exit
|
exit 0
|
||||||
else
|
else
|
||||||
echo -e "\033[31m操作已取消!\033[0m"
|
format_box "\033[31m操作已取消!\033[0m"
|
||||||
|
sleep 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user