Files
openwrt-packages/luci-app-clash/root/usr/share/clash/clash_game_rule.sh
2022-04-11 16:22:56 +08:00

79 lines
3.0 KiB
Bash

#!/bin/bash /etc/rc.common
. /lib/functions.sh
RULE_FILE_NAME="$1"
RULE_FILE_ENNAME=$(grep -F $RULE_FILE_NAME /usr/share/clash/rules/rules.list |awk -F ',' '{print $3}' 2>/dev/null)
if [ ! -z "$RULE_FILE_ENNAME" ]; then
DOWNLOAD_PATH=$(grep -F $RULE_FILE_NAME /usr/share/clash/rules/rules.list |awk -F ',' '{print $2}' 2>/dev/null)
else
DOWNLOAD_PATH=$RULE_FILE_NAME
fi
RULE_FILE_DIR="/usr/share/clash/rules/g_rules/$RULE_FILE_NAME"
TMP_RULE_DIR="/tmp/$RULE_FILE_NAME"
LOG_FILE="/usr/share/clash/clash.txt"
REAL_LOG="/usr/share/clash/clash_real.txt"
if [ $lang == "en" ] || [ $lang == "auto" ];then
echo "Updating 【$RULE_FILE_NAME】 Rule..." >$REAL_LOG
elif [ $lang == "zh_cn" ];then
echo "开始下载【$RULE_FILE_NAME】规则..." >$REAL_LOG
fi
wget --no-check-certificate -c4 https://raw.githubusercontent.com/FQrabbit/SSTap-Rule/master/rules/"$DOWNLOAD_PATH" -O 2>&1 >1 "$TMP_RULE_DIR"
if [ "$?" -eq "0" ] && [ "$(ls -l $TMP_RULE_DIR |awk '{print $5}')" -ne 0 ]; then
if [ $lang == "en" ] || [ $lang == "auto" ];then
echo "$RULE_FILE_NAME】 Downloaded successfully. Checking whether the rule version is updated.." >$REAL_LOG
elif [ $lang == "zh_cn" ];then
echo "$RULE_FILE_NAME】规则下载成功,检查规则版本是否更新..." >$REAL_LOG
fi
cmp -s $TMP_RULE_DIR $RULE_FILE_DIR
if [ "$?" -ne "0" ]; then
if [ $lang == "en" ] || [ $lang == "auto" ];then
echo "Rule version has been updated. Start to replace the old rule version.." >$REAL_LOG
elif [ $lang == "zh_cn" ];then
echo "规则版本有更新,开始替换旧规则版本..." >$REAL_LOG
fi
mv $TMP_RULE_DIR $RULE_FILE_DIR >/dev/null 2>&1
if [ $lang == "en" ] || [ $lang == "auto" ];then
echo "Delete download cache" >$REAL_LOG
elif [ $lang == "zh_cn" ];then
echo "删除下载缓存..." >$REAL_LOG
fi
rm -rf $TMP_RULE_DIR >/dev/null 2>&1
if [ $lang == "en" ] || [ $lang == "auto" ];then
echo "Rule File【$RULE_FILE_NAME】 Download Successful" >$REAL_LOG
elif [ $lang == "zh_cn" ];then
echo "$RULE_FILE_NAME】规则更新成功!" >$REAL_LOG
fi
sleep 2
echo "Clash for OpenWRT" >$REAL_LOG
else
if [ $lang == "en" ] || [ $lang == "auto" ];then
echo "Updated Rule File【$RULE_FILE_NAME】 No Change, Do Nothing" >$REAL_LOG
elif [ $lang == "zh_cn" ];then
echo "$RULE_FILE_NAME】规则版本没有更新,停止继续操作..." >$REAL_LOG
fi
rm -rf $TMP_RULE_DIR >/dev/null 2>&1
sleep 2
echo "Clash for OpenWRT" >$REAL_LOG
fi
else
if [ $lang == "en" ] || [ $lang == "auto" ];then
echo "Rule File【$RULE_FILE_NAME】 Download Error" >$REAL_LOG
elif [ $lang == "zh_cn" ];then
echo "$RULE_FILE_NAME】规则下载失败,请检查网络或稍后再试!" >$REAL_LOG
fi
rm -rf $TMP_RULE_DIR >/dev/null 2>&1
sleep 2
echo "Clash for OpenWRT" >$REAL_LOG
fi