luci-app-clash: bump to 1.5.8

This commit is contained in:
CN_SZTL 2020-02-26 15:52:16 +08:00
parent c21a0f61d7
commit 070ab35840
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
3 changed files with 60 additions and 40 deletions

View File

@ -34,7 +34,7 @@ add_cron(){
config_type=$(uci get clash.config.config_type 2>/dev/null)
#===========================================================================================================================
sed -i '/clash.txt/d' $CRON_FILE
clear=$(uci get clash.config.auto_clear_log 2>/dev/null)
if [ "${clear}" -eq 1 ]; then
[ -z "$(grep -w "/usr/share/clash/clash.txt" $CRON_FILE)" ] && echo "0 */$(uci get clash.config.clear_time 2>/dev/null) * * * echo '' >/usr/share/clash/clash.txt" >> $CRON_FILE
@ -306,9 +306,12 @@ custom_list() {
sh /usr/share/clash/list.sh >/dev/null 2>&1
}
watchdog() {
nohup /usr/share/clash/clash-watchdog.sh >/dev/null 2>&1
restore() {
sh /usr/share/clash/restore.sh >/dev/null 2>&1
}
start(){
#===========================================================================================================================
lang=$(uci get luci.main.lang 2>/dev/null)
@ -424,7 +427,7 @@ if [ -f $CONFIG_YAML ] && [ "$(ls -l $CONFIG_YAML|awk '{print int($5/1024)}')"
sleep 1
ip_rules >/dev/null 2>&1
ip_rules >/dev/null 2>&1
if [ "${core}" -eq 1 ];then
nohup $CLASH -d "$CLASH_CONFIG" > /usr/share/clash/clash.txt 2>&1 &
@ -463,7 +466,7 @@ if [ -f $CONFIG_YAML ] && [ "$(ls -l $CONFIG_YAML|awk '{print int($5/1024)}')"
fi
ln -s /usr/share/clash/yacd /www/luci-static/yacd 2>/dev/null
sleep 2
restore >/dev/null 2>&1
if [ "${lang}" == "en" ] || [ $lang == "auto" ];then
echo "Setting Cron Job" >$REAL_LOG
@ -471,7 +474,7 @@ if [ -f $CONFIG_YAML ] && [ "$(ls -l $CONFIG_YAML|awk '{print int($5/1024)}')"
elif [ "${lang}" == "zh_cn" ];then
echo "设置Cron" >$REAL_LOG
add_cron
fi
@ -483,13 +486,13 @@ if [ -f $CONFIG_YAML ] && [ "$(ls -l $CONFIG_YAML|awk '{print int($5/1024)}')"
echo "设置 Clash iptables" >$REAL_LOG
fi
if [ "$(uci get firewall.@defaults[0].forward)" != "ACCEPT" ]; then
if [ "$(uci get firewall.@defaults[0].forward)" != "ACCEPT" ]; then
uci set firewall.@defaults[0].forward=ACCEPT >/dev/null 2>&1
uci commit firewall >/dev/null 2>&1
/etc/init.d/firewall restart >/dev/null 2>&1
fi
fi
sleep 2
sleep 2
rules >/dev/null 2>&1
custom_list >/dev/null 2>&1
@ -517,7 +520,8 @@ if [ -f $CONFIG_YAML ] && [ "$(ls -l $CONFIG_YAML|awk '{print int($5/1024)}')"
sleep 2
echo "Clash for OpenWRT" >$REAL_LOG
fi
watchdog >/dev/null 2>&1
nohup /usr/share/clash/kill.sh >/dev/null 2>&1
else
if [ "${lang}" == "en" ] || [ $lang == "auto" ];then
echo " $(date "+%Y-%m-%d %H:%M:%S") - problem with config.yaml, config.yaml is either empty or not found " >> /usr/share/clash/clash.txt
@ -636,21 +640,19 @@ stop(){
fake=$(iptables -nvL OUTPUT -t nat |sed 1,2d |sed -n '/198.18.0.0\/16/=' |sort -r)
for fake in $fake; do
iptables -t nat -D OUTPUT $fake >/dev/null 2>&1
done
for fake in $fake; do
iptables -t nat -D OUTPUT $fake >/dev/null 2>&1
done
fake2=$(iptables -nvL OUTPUT -t nat |sed 1,2d |sed -n '/198.18.0.1\/16/=' |sort -r)
for fake2 in $fake2; do
iptables -t nat -D OUTPUT $fake2 >/dev/null 2>&1
done
for fake2 in $fake2; do
iptables -t nat -D OUTPUT $fake2 >/dev/null 2>&1
done
remove_mark >/dev/null 2>&1
bash /usr/share/clash/backup.sh >/dev/null 2>&1
kill -9 $(ps | grep clash-watchdog.sh | grep -v grep | awk '{print $1}') >/dev/null 2>&1
if [ "${lang}" == "en" ] || [ $lang == "auto" ];then
echo "Clash Core Stoped Successfully " >$REAL_LOG
elif [ "${lang}" == "zh_cn" ];then
@ -660,7 +662,7 @@ stop(){
kill -9 `pidof clash|sed "s/$//g"` 2>/dev/null
rm -rf /www/luci-static/yacd 2>/dev/null
sleep 1
if [ ! -z "${delandns}" ];then
if [ "${lang}" == "en" ] || [ $lang == "auto" ];then
echo "Removing Custom lan dns server " >$REAL_LOG
@ -677,7 +679,7 @@ stop(){
fi
del_cron >/dev/null 2>&1
sleep 1
sleep 1
if [ "${lang}" == "en" ] || [ $lang == "auto" ];then
echo "Restarting Dnsmasq " >$REAL_LOG
@ -686,14 +688,12 @@ stop(){
fi
revert_dns >/dev/null 2>&1
sleep 1
sleep 1
echo "" >/usr/share/clash/clash.txt >/dev/null 2>&1
echo "0" > /usr/share/clash/logstatus_check >/dev/null 2>&1
sh /usr/share/clash/kill.sh
if [ "${lang}" == "en" ] || [ $lang == "auto" ];then
echo " $(date "+%Y-%m-%d %H:%M:%S") - CLIENT IS DISABLED " >> /usr/share/clash/clash.txt
echo "Client is Disabled " >$REAL_LOG
@ -704,7 +704,9 @@ stop(){
echo "客户端被禁用 " >$REAL_LOG
sleep 2
echo "Clash for OpenWRT" >$REAL_LOG
fi
fi
if pidof clash >/dev/null; then
kill $(pidof clash) >/dev/null 2>&1 || kill -9 $(ps | grep clash | grep -v grep | awk '{print $1}') >/dev/null 2>&1
fi

View File

@ -0,0 +1,33 @@
#!/bin/sh
enable=$(uci get clash.config.enable 2>/dev/null)
if [ "${enable}" -eq 1 ];then
while [ $enable -eq 1 ];
do
if ! pidof clash>/dev/null; then
/etc/init.d/clash restart 2>&1 &
fi
sleep 60
continue
done
elif [ "${enable}" -eq 0 ];then
if [ -f /tmp/watchlist ];then
rm -rf /tmp/watchlist
fi
line=$(ps | grep -n '/usr/share/clash/kill.sh'|awk -F ':' '{print $2}' |awk -F ' ' '{print $1}'>/tmp/watchlist)
line_no=$(grep -n '' /tmp/watchlist|awk -F ':' '{print $1}')
num=$(grep -c '' /tmp/watchlist| awk '{print $1}')
nums=1
while [[ $nums -le $num ]]
do
kill -9 $(sed -n "$nums"p /tmp/watchlist| awk '{print $1}') >/dev/null 2>&1
nums=$(( $nums + 1))
done
fi

View File

@ -1,8 +1,5 @@
#!/bin/sh /etc/rc.common
sleeptime=150
enable=$(uci get clash.config.enable 2>/dev/null)
if [ -f /usr/share/clashbackup/history ];then
HISTORY_PATH="/usr/share/clashbackup/history"
@ -22,15 +19,3 @@ do
done >/dev/null 2>&1
fi
while [ $enable -eq 1 ];
do
if ! pidof clash>/dev/null; then
/etc/init.d/clash restart 2>&1 &
fi
sleep ${sleeptime}
continue
done