~优化文件结构,准备将bin文件放到单独分支
This commit is contained in:
@@ -249,7 +249,7 @@ if [ -n "$profile" ]; then
|
||||
echo "alias crash=\"$shtype $CRASHDIR/menu.sh\"" >>$profile #设置快捷命令环境变量
|
||||
sed -i '/export CRASHDIR=*/'d $profile
|
||||
echo "export CRASHDIR=\"$CRASHDIR\"" >>$profile #设置路径环境变量
|
||||
source $profile >/dev/null 2>&1 || echo 运行错误!请使用bash而不是dash运行安装命令!!!
|
||||
. $profile >/dev/null 2>&1 || echo 运行错误!请使用bash而不是dash运行安装命令!!!
|
||||
#适配zsh环境变量
|
||||
zsh --version >/dev/null 2>&1 && [ -z "$(cat ~/.zshrc 2>/dev/null | grep CRASHDIR)" ] && {
|
||||
sed -i '/alias crash=*/'d ~/.zshrc 2>/dev/null
|
||||
|
||||
@@ -9,8 +9,8 @@ CFG_PATH=${CRASHDIR}/configs/ShellCrash.cfg
|
||||
YAMLSDIR=${CRASHDIR}/yamls
|
||||
JSONSDIR=${CRASHDIR}/jsons
|
||||
#加载执行目录,失败则初始化
|
||||
source ${CRASHDIR}/configs/command.env 2>/dev/null
|
||||
[ -z "$BINDIR" -o -z "$TMPDIR" -o -z "$COMMAND" ] && source ${CRASHDIR}/init.sh >/dev/null 2>&1
|
||||
. ${CRASHDIR}/configs/command.env 2>/dev/null
|
||||
[ -z "$BINDIR" -o -z "$TMPDIR" -o -z "$COMMAND" ] && . ${CRASHDIR}/init.sh >/dev/null 2>&1
|
||||
[ ! -f ${TMPDIR} ] && mkdir -p ${TMPDIR}
|
||||
[ -n "$(tar --help 2>&1 | grep -o 'no-same-owner')" ] && tar_para='--no-same-owner' #tar命令兼容
|
||||
|
||||
@@ -29,9 +29,9 @@ ckstatus() {
|
||||
#检查/读取脚本配置文件
|
||||
if [ -f $CFG_PATH ]; then
|
||||
[ -n "$(awk 'a[$0]++' $CFG_PATH)" ] && awk '!a[$0]++' $CFG_PATH >$CFG_PATH #检查重复行并去除
|
||||
source $CFG_PATH 2>/dev/null
|
||||
. $CFG_PATH 2>/dev/null
|
||||
else
|
||||
source ${CRASHDIR}/init.sh >/dev/null 2>&1
|
||||
. ${CRASHDIR}/init.sh >/dev/null 2>&1
|
||||
fi
|
||||
versionsh=$(cat ${CRASHDIR}/init.sh | grep -E ^version= | head -n 1 | sed 's/version=//')
|
||||
[ -n "$versionsh" ] && versionsh_l=$versionsh
|
||||
@@ -112,7 +112,7 @@ ckstatus() {
|
||||
#检查新手引导
|
||||
if [ -z "$userguide" ]; then
|
||||
setconfig userguide 1
|
||||
source ${CRASHDIR}/webget.sh && userguide
|
||||
. ${CRASHDIR}/webget.sh && userguide
|
||||
fi
|
||||
#检查执行权限
|
||||
[ ! -x ${CRASHDIR}/start.sh ] && chmod +x ${CRASHDIR}/start.sh
|
||||
@@ -126,7 +126,7 @@ ckstatus() {
|
||||
core_v=$(/tmp/$file -v 2>/dev/null | head -n 1 | sed 's/ linux.*//;s/.* //')
|
||||
[ -z "$core_v" ] && core_v=$(/tmp/$file version 2>/dev/null | grep -Eo 'version .*' | sed 's/version //')
|
||||
if [ -n "$core_v" ]; then
|
||||
source ${CRASHDIR}/webget.sh && setcoretype &&
|
||||
. ${CRASHDIR}/webget.sh && setcoretype &&
|
||||
mv -f /tmp/$file ${TMPDIR}/CrashCore &&
|
||||
tar -zcf ${BINDIR}/CrashCore.tar.gz ${tar_para} -C ${TMPDIR} CrashCore &&
|
||||
echo -e "\033[32m内核加载完成!\033[0m " &&
|
||||
@@ -193,7 +193,7 @@ start_core() {
|
||||
echo -e "\033[33m没有找到${crashcore}配置文件,尝试生成providers配置文件!\033[0m"
|
||||
[ "$crashcore" = singboxr ] && coretype=singbox
|
||||
[ "$crashcore" = meta -o "$crashcore" = clashpre ] && coretype=clash
|
||||
source ${CRASHDIR}/webget.sh && gen_${coretype}_providers
|
||||
. ${CRASHDIR}/webget.sh && gen_${coretype}_providers
|
||||
elif [ -s $core_config -o -n "$Url" -o -n "$Https" ]; then
|
||||
${CRASHDIR}/start.sh start
|
||||
#设置循环检测以判定服务启动是否成功
|
||||
@@ -210,7 +210,7 @@ start_core() {
|
||||
[ -n "$test" -o -n "$(pidof CrashCore)" ] && startover
|
||||
else
|
||||
echo -e "\033[31m没有找到${crashcore}配置文件,请先导入配置文件!\033[0m"
|
||||
source ${CRASHDIR}/webget.sh && set_core_config
|
||||
. ${CRASHDIR}/webget.sh && set_core_config
|
||||
fi
|
||||
}
|
||||
start_service() {
|
||||
@@ -546,7 +546,7 @@ log_pusher() { #日志菜单
|
||||
esac
|
||||
}
|
||||
setport() { #端口设置
|
||||
source $CFG_PATH >/dev/null
|
||||
. $CFG_PATH >/dev/null
|
||||
[ -z "$secret" ] && secret=未设置
|
||||
[ -z "$table" ] && table=100
|
||||
[ -z "$authentication" ] && auth=未设置 || auth=******
|
||||
@@ -968,7 +968,7 @@ checkport() { #自动检查端口冲突
|
||||
echo -e "\033[0m-----------------------------------------------"
|
||||
echo -e "\033[36m请修改默认端口配置!\033[0m"
|
||||
setport
|
||||
source $CFG_PATH >/dev/null
|
||||
. $CFG_PATH >/dev/null
|
||||
checkport
|
||||
fi
|
||||
done
|
||||
@@ -1883,7 +1883,7 @@ advanced_set() { #进阶设置
|
||||
fi
|
||||
elif [ "$num" = 3 ]; then
|
||||
mv -f $CFG_PATH $CFG_PATH.bak
|
||||
source ${CRASHDIR}/init.sh >/dev/null
|
||||
. ${CRASHDIR}/init.sh >/dev/null
|
||||
echo -e "\033[32m脚本设置已重置!(旧文件已备份!)\033[0m"
|
||||
fi
|
||||
echo -e "\033[33m请重新启动脚本!\033[0m"
|
||||
@@ -2068,10 +2068,10 @@ tools() {
|
||||
i=
|
||||
|
||||
elif [ "$num" = 1 ]; then
|
||||
source ${CRASHDIR}/webget.sh && testcommand
|
||||
. ${CRASHDIR}/webget.sh && testcommand
|
||||
|
||||
elif [ "$num" = 2 ]; then
|
||||
source ${CRASHDIR}/webget.sh && userguide
|
||||
. ${CRASHDIR}/webget.sh && userguide
|
||||
|
||||
elif [ "$num" = 3 ]; then
|
||||
log_pusher
|
||||
@@ -2203,11 +2203,11 @@ main_menu() {
|
||||
main_menu
|
||||
|
||||
elif [ "$num" = 5 ]; then
|
||||
source ${CRASHDIR}/task/task.sh && task_menu
|
||||
. ${CRASHDIR}/task/task.sh && task_menu
|
||||
main_menu
|
||||
|
||||
elif [ "$num" = 6 ]; then
|
||||
source ${CRASHDIR}/webget.sh && set_core_config
|
||||
. ${CRASHDIR}/webget.sh && set_core_config
|
||||
main_menu
|
||||
|
||||
elif [ "$num" = 7 ]; then
|
||||
@@ -2225,7 +2225,7 @@ main_menu() {
|
||||
|
||||
elif [ "$num" = 9 ]; then
|
||||
checkcfg=$(cat $CFG_PATH)
|
||||
source ${CRASHDIR}/webget.sh && update
|
||||
. ${CRASHDIR}/webget.sh && update
|
||||
if [ -n "$PID" ]; then
|
||||
checkcfg_new=$(cat $CFG_PATH)
|
||||
[ "$checkcfg" != "$checkcfg_new" ] && checkrestart
|
||||
@@ -2244,7 +2244,7 @@ main_menu() {
|
||||
cd $(dirname $0)
|
||||
pwd
|
||||
)
|
||||
source ${CRASHDIR}/init.sh
|
||||
. ${CRASHDIR}/init.sh
|
||||
sleep 1
|
||||
echo 请重启SSH窗口以完成初始化!
|
||||
exit
|
||||
@@ -2280,7 +2280,7 @@ case "$1" in
|
||||
${CRASHDIR}/start.sh $2 $3 $4 $5 $6
|
||||
;;
|
||||
-i)
|
||||
source ${CRASHDIR}/init.sh
|
||||
. ${CRASHDIR}/init.sh
|
||||
;;
|
||||
-st)
|
||||
shtype=sh && [ -n "$(ls -l /bin/sh | grep -o dash)" ] && shtype=bash
|
||||
|
||||
@@ -210,6 +210,7 @@ get_bin() { #专用于项目内部文件的下载
|
||||
. "$CRASHDIR"/configs/ShellCrash.cfg >/dev/null
|
||||
[ -z "$update_url" ] && update_url=https://testingcf.jsdelivr.net/gh/juewuy/ShellCrash@master
|
||||
if [ -n "$url_id" ]; then
|
||||
echo "$2" | grep -q '^/bin' && release_type=update #/bin文件改为在update分支下载
|
||||
[ -z "$release_type" ] && release_type=master
|
||||
if [ "$url_id" = 101 -o "$url_id" = 104 ]; then
|
||||
url="$(grep "$url_id" "$CRASHDIR"/configs/servers.list | awk '{print $3}')@$release_type/$2" #jsdelivr特殊处理
|
||||
@@ -1032,7 +1033,7 @@ start_ipt_route() { #iptables-route通用工具
|
||||
[ "$3" = 'PREROUTING' ] && [ "$macfilter_type" != "白名单" ] && {
|
||||
[ -s "$CRASHDIR"/configs/mac ] &&
|
||||
for mac in $(cat "$CRASHDIR"/configs/mac); do
|
||||
$1 $w -t $2 -A $4 -m mac --mac-source $mac -j RETURN
|
||||
$1 $w -t $2 -A $4 -m mac --mac-. $mac -j RETURN
|
||||
done
|
||||
[ -s "$CRASHDIR"/configs/ip_filter ] && [ "$1" = 'iptables' ] &&
|
||||
for ip in $(cat "$CRASHDIR"/configs/ip_filter); do
|
||||
@@ -1044,7 +1045,7 @@ start_ipt_route() { #iptables-route通用工具
|
||||
if [ "$3" = 'PREROUTING' ] && [ "$4" != 'shellcrash_vm' ] && [ "$macfilter_type" = "白名单" ] && [ -n "$(cat $CRASHDIR/configs/mac $CRASHDIR/configs/ip_filter 2>/dev/null)" ]; then
|
||||
[ -s "$CRASHDIR"/configs/mac ] &&
|
||||
for mac in $(cat "$CRASHDIR"/configs/mac); do
|
||||
$1 $w -t $2 -A $4 -p $5 -m mac --mac-source $mac -j $JUMP
|
||||
$1 $w -t $2 -A $4 -p $5 -m mac --mac-. $mac -j $JUMP
|
||||
done
|
||||
[ -s "$CRASHDIR"/configs/ip_filter ] && [ "$1" = 'iptables' ] &&
|
||||
for ip in $(cat "$CRASHDIR"/configs/ip_filter); do
|
||||
@@ -1090,7 +1091,7 @@ start_ipt_dns() { #iptables-dns通用工具
|
||||
[ "$2" = 'PREROUTING' ] && [ "$macfilter_type" != "白名单" ] && {
|
||||
[ -s "$CRASHDIR"/configs/mac ] &&
|
||||
for mac in $(cat "$CRASHDIR"/configs/mac); do
|
||||
$1 $w -t nat -A $3 -m mac --mac-source $mac -j RETURN
|
||||
$1 $w -t nat -A $3 -m mac --mac-. $mac -j RETURN
|
||||
done
|
||||
[ -s "$CRASHDIR"/configs/ip_filter ] && [ "$1" = 'iptables' ] &&
|
||||
for ip in $(cat "$CRASHDIR"/configs/ip_filter); do
|
||||
@@ -1100,8 +1101,8 @@ start_ipt_dns() { #iptables-dns通用工具
|
||||
if [ "$2" = 'PREROUTING' ] && [ "$3" != 'shellcrash_vm_dns' ] && [ "$macfilter_type" = "白名单" ] && [ -n "$(cat $CRASHDIR/configs/mac $CRASHDIR/configs/ip_filter 2>/dev/null)" ]; then
|
||||
[ -s "$CRASHDIR"/configs/mac ] &&
|
||||
for mac in $(cat "$CRASHDIR"/configs/mac); do
|
||||
$1 $w -t nat -A $3 -p tcp -m mac --mac-source $mac -j REDIRECT --to-ports $dns_port
|
||||
$1 $w -t nat -A $3 -p udp -m mac --mac-source $mac -j REDIRECT --to-ports $dns_port
|
||||
$1 $w -t nat -A $3 -p tcp -m mac --mac-. $mac -j REDIRECT --to-ports $dns_port
|
||||
$1 $w -t nat -A $3 -p udp -m mac --mac-. $mac -j REDIRECT --to-ports $dns_port
|
||||
done
|
||||
[ -s "$CRASHDIR"/configs/ip_filter ] && [ "$1" = 'iptables' ] &&
|
||||
for ip in $(cat "$CRASHDIR"/configs/ip_filter); do
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
[ -z "$BINDIR" ] && BINDIR=${CRASHDIR}
|
||||
CFG_PATH=${CRASHDIR}/configs/ShellCrash.cfg
|
||||
TMPDIR=/tmp/ShellCrash && [ ! -f ${TMPDIR} ] && mkdir -p ${TMPDIR}
|
||||
source $CFG_PATH >/dev/null 2>&1
|
||||
. $CFG_PATH >/dev/null 2>&1
|
||||
[ -n "$(tar --help 2>&1|grep -o 'no-same-owner')" ] && tar_para='--no-same-owner' #tar命令兼容
|
||||
|
||||
setconfig(){
|
||||
@@ -21,7 +21,7 @@ ckcmd(){ #检查命令是否存在
|
||||
#任务命令
|
||||
check_update(){ #检查更新工具
|
||||
${CRASHDIR}/start.sh get_bin ${TMPDIR}/crashversion "bin/version" echooff
|
||||
[ "$?" = "0" ] && source ${TMPDIR}/crashversion 2>/dev/null
|
||||
[ "$?" = "0" ] && . ${TMPDIR}/crashversion 2>/dev/null
|
||||
rm -rf ${TMPDIR}/crashversion
|
||||
}
|
||||
update_core(){ #自动更新内核
|
||||
@@ -109,7 +109,7 @@ update_scripts(){ #自动更新脚本
|
||||
${CRASHDIR}/start.sh start
|
||||
return 1
|
||||
else
|
||||
source ${CRASHDIR}/init.sh >/dev/null
|
||||
. ${CRASHDIR}/init.sh >/dev/null
|
||||
${CRASHDIR}/start.sh start
|
||||
return 0
|
||||
fi
|
||||
|
||||
@@ -1097,7 +1097,7 @@ set_core_config(){ #配置文件功能
|
||||
exit
|
||||
;;
|
||||
5)
|
||||
source ${CRASHDIR}/task/task.sh && task_menu
|
||||
. ${CRASHDIR}/task/task.sh && task_menu
|
||||
set_core_config
|
||||
;;
|
||||
6)
|
||||
@@ -1200,7 +1200,7 @@ getscripts(){ #更新脚本文件
|
||||
echo -e "\033[33m文件解压失败!\033[0m"
|
||||
error_down
|
||||
else
|
||||
source ${CRASHDIR}/init.sh >/dev/null
|
||||
. ${CRASHDIR}/init.sh >/dev/null
|
||||
echo -e "\033[32m脚本更新成功!\033[0m"
|
||||
fi
|
||||
fi
|
||||
@@ -1305,7 +1305,7 @@ switch_core(){ #clash与singbox内核切换
|
||||
else
|
||||
COMMAND='"$TMPDIR/CrashCore -d $BINDIR -f $TMPDIR/config.yaml"'
|
||||
fi
|
||||
setconfig COMMAND "$COMMAND" ${CRASHDIR}/configs/command.env && source ${CRASHDIR}/configs/command.env
|
||||
setconfig COMMAND "$COMMAND" ${CRASHDIR}/configs/command.env && . ${CRASHDIR}/configs/command.env
|
||||
}
|
||||
getcore(){ #下载内核文件
|
||||
[ -z "$crashcore" ] && crashcore=meta
|
||||
@@ -1709,7 +1709,7 @@ setcustgeo(){ #下载自定义数据库文件
|
||||
esac
|
||||
}
|
||||
setgeo(){ #数据库选择菜单
|
||||
source $CFG_PATH > /dev/null
|
||||
. $CFG_PATH > /dev/null
|
||||
[ -n "$cn_mini_v" ] && geo_type_des=精简版 || geo_type_des=全球版
|
||||
echo -----------------------------------------------
|
||||
echo -e "\033[36m请选择需要更新的Geo/CN数据库文件:\033[0m"
|
||||
@@ -2136,10 +2136,13 @@ setserver(){
|
||||
}
|
||||
#检查更新
|
||||
checkupdate(){
|
||||
${CRASHDIR}/start.sh get_bin ${TMPDIR}/version_new bin/version echooff
|
||||
[ "$?" = "0" ] && version_new=$(cat ${TMPDIR}/version_new | grep -oE 'versionsh=.*' | awk -F'=' '{ print $2 }')
|
||||
if [ -n "$version_new" ];then
|
||||
source ${TMPDIR}/version_new 2>/dev/null
|
||||
${CRASHDIR}/start.sh get_bin ${TMPDIR}/version_new version echooff
|
||||
[ "$?" = "0" ] && {
|
||||
version_new=$(cat ${TMPDIR}/version_new)
|
||||
${CRASHDIR}/start.sh get_bin ${TMPDIR}/version_new bin/version echooff
|
||||
}
|
||||
if [ "$?" = "0" ];then
|
||||
. ${TMPDIR}/version_new 2>/dev/null
|
||||
else
|
||||
echo -e "\033[31m检查更新失败!请尝试切换其他安装源!\033[0m"
|
||||
setserver
|
||||
@@ -2211,7 +2214,7 @@ update(){
|
||||
setserver
|
||||
update
|
||||
elif [ "$num" = 8 ]; then
|
||||
source ${CRASHDIR}/task/task.sh && task_add
|
||||
. ${CRASHDIR}/task/task.sh && task_add
|
||||
update
|
||||
|
||||
elif [ "$num" = 9 ]; then
|
||||
@@ -2375,7 +2378,7 @@ userguide(){
|
||||
fi
|
||||
fi
|
||||
#启用推荐的自动任务配置
|
||||
source ${CRASHDIR}/task/task.sh && task_recom
|
||||
. ${CRASHDIR}/task/task.sh && task_recom
|
||||
#小米设备软固化
|
||||
if [ "$systype" = "mi_snapshot" ];then
|
||||
echo -----------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user