mirror of
				https://github.com/kenzok8/openwrt-packages.git
				synced 2025-10-30 07:50:37 +08:00 
			
		
		
		
	
		
			
	
	
		
			79 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			79 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| ![github-actions[bot]](/assets/img/avatar_default.png)  | #!/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 |