~优化mix模式数据库,防止和规则中的数据库重复下载
~修复crash -i初始化时的报错bug
This commit is contained in:
@@ -213,8 +213,8 @@ fi
|
|||||||
command -v bash >/dev/null 2>&1 && shtype=bash
|
command -v bash >/dev/null 2>&1 && shtype=bash
|
||||||
[ -x /bin/ash ] && shtype=ash
|
[ -x /bin/ash ] && shtype=ash
|
||||||
for file in start.sh task.sh menu.sh; do
|
for file in start.sh task.sh menu.sh; do
|
||||||
sed -i "s|/bin/sh|/bin/$shtype|" ${CRASHDIR}/${file}
|
sed -i "s|/bin/sh|/bin/$shtype|" ${CRASHDIR}/${file} 2>/dev/null
|
||||||
chmod 755 ${CRASHDIR}/${file}
|
chmod 755 ${CRASHDIR}/${file} 2>/dev/null
|
||||||
done
|
done
|
||||||
setconfig versionsh_l $version
|
setconfig versionsh_l $version
|
||||||
#生成用于执行启动服务的变量文件
|
#生成用于执行启动服务的变量文件
|
||||||
@@ -316,6 +316,8 @@ mv -f ${CRASHDIR}/mark ${CRASHDIR}/configs/ShellCrash.cfg 2>/dev/null
|
|||||||
mv -f ${CRASHDIR}/configs/ShellClash.cfg ${CRASHDIR}/configs/ShellCrash.cfg 2>/dev/null
|
mv -f ${CRASHDIR}/configs/ShellClash.cfg ${CRASHDIR}/configs/ShellCrash.cfg 2>/dev/null
|
||||||
#数据库改名
|
#数据库改名
|
||||||
mv -f ${CRASHDIR}/geosite.dat ${CRASHDIR}/GeoSite.dat 2>/dev/null
|
mv -f ${CRASHDIR}/geosite.dat ${CRASHDIR}/GeoSite.dat 2>/dev/null
|
||||||
|
mv -f ${CRASHDIR}/ruleset/geosite-cn.srs ${CRASHDIR}/ruleset/cn.srs 2>/dev/null
|
||||||
|
mv -f ${CRASHDIR}/ruleset/geosite-cn.mrs ${CRASHDIR}/ruleset/cn.mrs 2>/dev/null
|
||||||
#数据库移动
|
#数据库移动
|
||||||
mv -f ${CRASHDIR}/*.srs ${CRASHDIR}/ruleset/ 2>/dev/null
|
mv -f ${CRASHDIR}/*.srs ${CRASHDIR}/ruleset/ 2>/dev/null
|
||||||
mv -f ${CRASHDIR}/*.mrs ${CRASHDIR}/ruleset/ 2>/dev/null
|
mv -f ${CRASHDIR}/*.mrs ${CRASHDIR}/ruleset/ 2>/dev/null
|
||||||
|
|||||||
@@ -429,7 +429,7 @@ EOF
|
|||||||
[ "$dns_mod" = "mix" ] && {
|
[ "$dns_mod" = "mix" ] && {
|
||||||
#插入过滤规则
|
#插入过滤规则
|
||||||
cat >>"$TMPDIR"/dns.yaml <<EOF
|
cat >>"$TMPDIR"/dns.yaml <<EOF
|
||||||
- "rule-set:geosite-cn"
|
- "rule-set:cn"
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -566,10 +566,10 @@ EOF
|
|||||||
mv -f "$TMPDIR"/rules.add "$TMPDIR"/rules.yaml
|
mv -f "$TMPDIR"/rules.add "$TMPDIR"/rules.yaml
|
||||||
}
|
}
|
||||||
#mix模式生成rule-providers
|
#mix模式生成rule-providers
|
||||||
[ "$dns_mod" = "mix" ] && ! grep -q 'geosite-cn:' "$TMPDIR"/rule-providers.yaml && ! grep -q '^rule-providers' "$CRASHDIR"/yamls/others.yaml 2>/dev/null && {
|
[ "$dns_mod" = "mix" ] && ! grep -q 'cn:' "$TMPDIR"/rule-providers.yaml && ! grep -q '^rule-providers' "$CRASHDIR"/yamls/others.yaml 2>/dev/null && {
|
||||||
space=$(sed -n "1p" "$TMPDIR"/rule-providers.yaml | grep -oE '^ *') #获取空格数
|
space=$(sed -n "1p" "$TMPDIR"/rule-providers.yaml | grep -oE '^ *') #获取空格数
|
||||||
[ -z "$space" ] && space=' '
|
[ -z "$space" ] && space=' '
|
||||||
echo "${space}geosite-cn: {type: file, behavior: domain, format: mrs, path: ./ruleset/geosite-cn.mrs}" >> "$TMPDIR"/rule-providers.yaml
|
echo "${space}cn: {type: http, behavior: domain, format: mrs, path: ./ruleset/cn.mrs, url: https://testingcf.jsdelivr.net/gh/juewuy/ShellCrash@dev/bin/geodata/mrs_geosite_cn.mrs}" >> "$TMPDIR"/rule-providers.yaml
|
||||||
}
|
}
|
||||||
#对齐rules中的空格
|
#对齐rules中的空格
|
||||||
sed -i 's/^ *-/ -/g' "$TMPDIR"/rules.yaml
|
sed -i 's/^ *-/ -/g' "$TMPDIR"/rules.yaml
|
||||||
@@ -700,17 +700,18 @@ EOF
|
|||||||
[ -n "$fake_ip_filter_domain" ] && fake_ip_filter_domain="{ \"domain\": [$fake_ip_filter_domain], \"server\": \"dns_direct\" },"
|
[ -n "$fake_ip_filter_domain" ] && fake_ip_filter_domain="{ \"domain\": [$fake_ip_filter_domain], \"server\": \"dns_direct\" },"
|
||||||
[ -n "$fake_ip_filter_suffix" ] && fake_ip_filter_suffix="{ \"domain_suffix\": [$fake_ip_filter_suffix], \"server\": \"dns_direct\" },"
|
[ -n "$fake_ip_filter_suffix" ] && fake_ip_filter_suffix="{ \"domain_suffix\": [$fake_ip_filter_suffix], \"server\": \"dns_direct\" },"
|
||||||
[ -n "$fake_ip_filter_regex" ] && fake_ip_filter_regex="{ \"domain_regex\": [$fake_ip_filter_regex], \"server\": \"dns_direct\" },"
|
[ -n "$fake_ip_filter_regex" ] && fake_ip_filter_regex="{ \"domain_regex\": [$fake_ip_filter_regex], \"server\": \"dns_direct\" },"
|
||||||
direct_dns="{ \"rule_set\": [\"geosite-cn\"], \"server\": \"dns_direct\" },"
|
direct_dns="{ \"rule_set\": [\"cn\"], \"server\": \"dns_direct\" },"
|
||||||
#生成add_rule_set.json
|
#生成add_rule_set.json
|
||||||
[ -z "$(cat "$CRASHDIR"/jsons/*.json | grep -Ei '"tag" *: *"geosite-cn"')" ] && cat >"$TMPDIR"/jsons/add_rule_set.json <<EOF
|
[ -z "$(cat "$CRASHDIR"/jsons/*.json | grep -Ei '"tag" *: *"cn"')" ] && cat >"$TMPDIR"/jsons/add_rule_set.json <<EOF
|
||||||
{
|
{
|
||||||
"route": {
|
"route": {
|
||||||
"rule_set": [
|
"rule_set": [
|
||||||
{
|
{
|
||||||
"tag": "geosite-cn",
|
"tag": "cn",
|
||||||
"type": "local",
|
"type": "remote",
|
||||||
"format": "binary",
|
"format": "binary",
|
||||||
"path": "./ruleset/geosite-cn.srs"
|
"path": "./ruleset/cn.srs",
|
||||||
|
"url": "https://testingcf.jsdelivr.net/gh/juewuy/ShellCrash@dev/bin/geodata/srs_geosite_cn.srs"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -1835,8 +1836,8 @@ clash_check() { #clash启动前检查
|
|||||||
[ -n "$(grep -oEi 'geoip' "$CRASHDIR"/yamls/*.yaml)" ] && [ -z "$(grep -oEi 'geoip:|mmdb:' "$CRASHDIR"/yamls/*.yaml)" ] && ckgeo Country.mmdb cn_mini.mmdb
|
[ -n "$(grep -oEi 'geoip' "$CRASHDIR"/yamls/*.yaml)" ] && [ -z "$(grep -oEi 'geoip:|mmdb:' "$CRASHDIR"/yamls/*.yaml)" ] && ckgeo Country.mmdb cn_mini.mmdb
|
||||||
#预下载GeoSite数据库并排除存在自定义数据库链接的情况
|
#预下载GeoSite数据库并排除存在自定义数据库链接的情况
|
||||||
[ -n "$(grep -oEi 'geosite' "$CRASHDIR"/yamls/*.yaml)" ] && [ -z "$(grep -oEi 'geosite:' "$CRASHDIR"/yamls/*.yaml)" ] && ckgeo GeoSite.dat geosite.dat
|
[ -n "$(grep -oEi 'geosite' "$CRASHDIR"/yamls/*.yaml)" ] && [ -z "$(grep -oEi 'geosite:' "$CRASHDIR"/yamls/*.yaml)" ] && ckgeo GeoSite.dat geosite.dat
|
||||||
#预下载geosite-cn.mrs数据库
|
#预下载cn.mrs数据库
|
||||||
[ -n "$(cat "$CRASHDIR"/yamls/*.yaml | grep -oEi 'rule_set.*geosite-cn')" -o "$dns_mod" = "mix" ] && ckgeo ruleset/geosite-cn.mrs mrs_geosite_cn.mrs
|
[ -n "$(cat "$CRASHDIR"/yamls/*.yaml | grep -oEi 'rule_set.*cn')" -o "$dns_mod" = "mix" ] && ckgeo ruleset/cn.mrs mrs_geosite_cn.mrs
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
singbox_check() { #singbox启动前检查
|
singbox_check() { #singbox启动前检查
|
||||||
@@ -1845,8 +1846,8 @@ singbox_check() { #singbox启动前检查
|
|||||||
core_check
|
core_check
|
||||||
#预下载geoip-cn.srs数据库
|
#预下载geoip-cn.srs数据库
|
||||||
[ -n "$(cat "$CRASHDIR"/jsons/*.json | grep -oEi '"rule_set" *: *"geoip-cn"')" ] && ckgeo ruleset/geoip-cn.srs srs_geoip_cn.srs
|
[ -n "$(cat "$CRASHDIR"/jsons/*.json | grep -oEi '"rule_set" *: *"geoip-cn"')" ] && ckgeo ruleset/geoip-cn.srs srs_geoip_cn.srs
|
||||||
#预下载geosite-cn.srs数据库
|
#预下载cn.srs数据库
|
||||||
[ -n "$(cat "$CRASHDIR"/jsons/*.json | grep -oEi '"rule_set" *: *"geosite-cn"')" -o "$dns_mod" = "mix" ] && ckgeo ruleset/geosite-cn.srs srs_geosite_cn.srs
|
[ -n "$(cat "$CRASHDIR"/jsons/*.json | grep -oEi '"rule_set" *: *"cn"')" -o "$dns_mod" = "mix" ] && ckgeo ruleset/cn.srs srs_geosite_cn.srs
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
network_check() { #检查是否联网
|
network_check() { #检查是否联网
|
||||||
|
|||||||
Reference in New Issue
Block a user