diff --git a/box/scripts/box.tool b/box/scripts/box.tool index de4499f..9f99923 100755 --- a/box/scripts/box.tool +++ b/box/scripts/box.tool @@ -7,7 +7,7 @@ source /data/adb/box/settings.ini # user agent user_agent="box_for_root" # whether use ghproxy to accelerate github download -use_ghproxy=true +use_ghproxy=false # Restart the binary, after stopping and running again restart_box() { @@ -153,14 +153,16 @@ update_subs() { "${yq_cmd}" '.proxies' "${update_file_name}" > "${clash_provide_config}" "${yq_cmd}" -i '{"proxies": .}' "${clash_provide_config}" - if ${yq_cmd} '.rules' "${update_file_name}" >/dev/null 2>&1; then - "${yq_cmd}" '.rules' "${update_file_name}" > "${clash_provide_rules}" - "${yq_cmd}" -i '{"rules": .}' "${clash_provide_rules}" + if [ "${custom_rules_subs}" = "true" ]; then + if ${yq_cmd} '.rules' "${update_file_name}" >/dev/null 2>&1; then - "${yq_cmd}" -i 'del(.rules)' "${clash_config}" - cat "${clash_provide_rules}" >> "${clash_config}" + "${yq_cmd}" '.rules' "${update_file_name}" > "${clash_provide_rules}" + "${yq_cmd}" -i '{"rules": .}' "${clash_provide_rules}" + "${yq_cmd}" -i 'del(.rules)' "${clash_config}" + + cat "${clash_provide_rules}" >> "${clash_config}" + fi fi - log Info "subscription success" log Info "Update subscription $(date +"%F %R")" if [ -f "${update_file_name}.bak" ]; then diff --git a/box/settings.ini b/box/settings.ini index c1a72a5..0cb6387 100755 --- a/box/settings.ini +++ b/box/settings.ini @@ -94,6 +94,8 @@ clash_config="${box_dir}/clash/${name_clash_config}" # clash subscription name_provide_clash_config="subscription.yaml" clash_provide_config="${box_dir}/clash/provide/${name_provide_clash_config}" +# support rules specified in subscriptions, This is useful when the subscription contains customized rules as well. +custom_rules_subs="false" name_provide_clash_rules="rules.yaml" clash_provide_rules="${box_dir}/clash/provide/${name_provide_clash_rules}"