💋 Sync 2026-10-04 04:16:09

This commit is contained in:
github-actions[bot] committed 2026-10-04 04:16:09 +08:00
1 parent f6b2df73ec
commit f62992fd80
745 files changed
+212416 -1173

No files matched your search

@@ -0,0 +1,30 @@
#!/bin/sh /etc/rc.common
START=95
STOP=05
USE_PROCD=0
HP=/etc/hotplug.d/iface/99-quickactions-conntrack-flush
CRON_LINE="* * * * * /usr/bin/wan-watchdog.sh"
start() {
en=$(uci -q get quickactions.failover.enabled)
[ -z "$en" ] && en=1
if [ "$en" = "1" ]; then
[ -f "$HP" ] && chmod 755 "$HP"
(crontab -l 2>/dev/null | grep -v "wan-watchdog.sh"; echo "$CRON_LINE") | crontab -
else
[ -f "$HP" ] && chmod 644 "$HP"
crontab -l 2>/dev/null | grep -v "wan-watchdog.sh" | crontab -
fi
/etc/init.d/cron restart
}
stop() {
crontab -l 2>/dev/null | grep -v "wan-watchdog.sh" | crontab -
/etc/init.d/cron restart
}
restart() {
stop
start
}
+67
View File
@@ -0,0 +1,67 @@
#!/bin/sh /etc/rc.common
START=90
STOP=10
# Unique path prefix so this coexists with the original hotplug-generator
IFACE_PATH="/etc/hotplug.d/iface/91-qa-hp"
add_iface_rule() {
local enabled action command description interface target
config_get enabled "$1" enabled
[ "$enabled" = "0" ] && return
config_get action "$1" action
config_get description "$1" description
config_get interface "$1" interface
[ -z "$action" ] && return
[ -z "$interface" ] && return
target="$IFACE_PATH-$1"
{
echo "#!/bin/sh"
echo "# Generated by luci-app-quickactions - do not edit directly"
echo "# Source: /etc/config/hotplug section [$1]"
description=$(echo $description | tr '\n' ' ')
echo "# Description: $description"
echo ""
echo "if [ \"\$ACTION\" = \"$action\" ]; then"
echo " if [ \"\$INTERFACE\" = \"$interface\" ]; then"
} > "$target"
command_list=$(uci -q get "hotplug.$1.command")
[ "${command_list:0:1}" = "'" ] && command_list="${command_list:1}"
[ "${command_list: -1}" = "'" ] && command_list="${command_list%?}"
i=0
while true ; do
i=$((i+1))
command=$(echo "$command_list" | awk -v i=$i -F "' '" '{print $i}')
[ -z "$command" ] && break
echo " $command" >> "$target"
done
{
echo " fi"
echo "fi"
echo "exit 0"
} >> "$target"
chmod 755 "$target"
}
start() {
mkdir -p /etc/hotplug.d/iface
rm -f "${IFACE_PATH}-"* 2>/dev/null
config_load hotplug
config_foreach add_iface_rule iface
logger -t quickactions-hotplug "Handlers regenerated from /etc/config/hotplug"
}
stop() {
rm -f "${IFACE_PATH}-"* 2>/dev/null
logger -t quickactions-hotplug "Handlers removed"
}
restart() {
stop
start
}
@@ -0,0 +1,145 @@
#!/bin/sh /etc/rc.common
START=99
STOP=10
USE_PROCD=1
SHORTCUT_APPLIER=/usr/libexec/quickactions-netwizard/apply-shortcuts.sh
clean_shortcuts() {
local sec
for sec in $(uci -q show nginx 2>/dev/null | sed -n "s/^nginx\.\(_sc_[^=.]*\)=server$/\1/p"); do
uci -q delete nginx."$sec"
done
for sec in $(uci -q show dhcp 2>/dev/null | sed -n "s/^dhcp\.\(_sc_[^=.]*\)=domain$/\1/p"); do
uci -q delete dhcp."$sec"
done
}
process_shortcut() {
local shortcut to_url lanaddr cfg="$1"
lanaddr="$(uci -q get network.lan.ipaddr | tr ' ' '\n' | head -n1)"
lanaddr="${lanaddr%%/*}"
[ -z "$lanaddr" ] && lanaddr="10.0.0.1"
config_get shortcut "$cfg" shortcut
config_get to_url "$cfg" to_url
[ -z "$shortcut" ] || [ -z "$to_url" ] && return 0
if [ -f /etc/nginx/uci.conf ]; then
SHORTCUTS_TOUCHED=1
uci -q set nginx._sc_$shortcut=server
uci -q set nginx._sc_$shortcut.server_name="$shortcut"
uci -q add_list nginx._sc_$shortcut.listen="80"
uci -q set nginx._sc_$shortcut.return="302 $to_url"
uci -q set dhcp._sc_$shortcut=domain
uci -q set dhcp._sc_$shortcut.name="$shortcut"
uci -q set dhcp._sc_$shortcut.ip="$lanaddr"
fi
}
sethttps() {
local cfg="${1:-default}" https
config_get https "$cfg" https 0
# Safety: only touch redirect_https if wizard.default.https is explicitly set
local explicit
explicit=$(uci -q get wizard.default.https)
if [ -z "$explicit" ]; then
return 0
fi
if [ -x /etc/init.d/nginx ] && [ -f /etc/nginx/uci.conf ]; then
if [ "x${https}" = "x1" ]; then
[ -z "$(uci -q get nginx._redirect2ssl)" ] && {
uci -q set nginx._redirect2ssl=server
uci -q set nginx._redirect2ssl.server_name='_redirect2ssl'
uci -q set nginx._redirect2ssl.return='302 https://$host$request_uri'
uci -q set nginx._redirect2ssl.access_log='off;'
}
uci -q del nginx.default_server.listen
uci -q add_list nginx.default_server.listen='80'
uci -q add_list nginx.default_server.listen='[::]:80'
uci -q del nginx._redirect2ssl.listen
uci -q add_list nginx._redirect2ssl.listen='80 default_server'
uci -q add_list nginx._redirect2ssl.listen='[::]:80 default_server'
else
uci -q delete nginx._redirect2ssl
uci -q del nginx.default_server.listen
uci -q add_list nginx.default_server.listen='80 default_server'
uci -q add_list nginx.default_server.listen='[::]:80 default_server'
fi
uci -q commit nginx
/etc/init.d/nginx reload >/dev/null 2>&1
elif [ -x /etc/init.d/lighttpd ] && [ -f /etc/lighttpd/conf.d/82-https.conf ]; then
if [ "x${https}" = "x1" ]; then
sed -i "s/^[ \t]*#*[ \t]*url\.redirect[ \t]*=.*/\turl.redirect =/" /etc/lighttpd/conf.d/82-https.conf 2>/dev/null
else
sed -i "s/^[ \t]*url\.redirect[ \t]*=.*/\t# url.redirect =/" /etc/lighttpd/conf.d/82-https.conf 2>/dev/null
fi
/etc/init.d/lighttpd reload >/dev/null 2>&1
elif [ -x /etc/init.d/uhttpd ]; then
if [ "x${https}" = "x1" ]; then
uci -q set uhttpd.main.redirect_https='1'
else
uci -q set uhttpd.main.redirect_https='0'
fi
uci -q commit uhttpd
/etc/init.d/uhttpd reload >/dev/null 2>&1
fi
}
reload_services() {
# Only commit if we actually wrote to dhcp/nginx (shortcuts changed)
if [ "$SHORTCUTS_TOUCHED" = "1" ]; then
uci -q commit dhcp
[ -x /etc/init.d/dnsmasq ] && /etc/init.d/dnsmasq reload >/dev/null 2>&1
if [ -f /etc/nginx/uci.conf ] && [ -x /etc/init.d/nginx ]; then
uci -q commit nginx
/etc/init.d/nginx reload >/dev/null 2>&1
fi
fi
}
SHORTCUTS_TOUCHED=0
start_service() {
config_load wizard
# Cookie persist → luci.sgi (only if wizard.default.persistent_cookies is explicitly set)
local explicit_pc
explicit_pc=$(uci -q get wizard.default.persistent_cookies)
if [ -n "$explicit_pc" ]; then
[ -z "$(uci -q get luci.sgi)" ] && uci -q set luci.sgi=sgi
uci -q set luci.sgi.persistent_cookies="$explicit_pc"
uci -q commit luci
fi
# Shortcuts (nginx + dnsmasq)
clean_shortcuts
config_foreach process_shortcut shortcuts
# HTTPS redirect
sethttps default
reload_services
}
stop_service() {
clean_shortcuts
reload_services
}
service_triggers() {
procd_add_reload_trigger "wizard"
}
boot() {
start "$@"
# Background coremark if enabled and not yet run
local cm
cm=$(uci -q get wizard.@wizard[0].coremark)
[ "$cm" = "1" ] || cm=$(uci -q get wizard.default.coremark)
if [ "$cm" = "1" ] && [ ! -f /etc/bench.log ]; then
(sleep 5; /sbin/coremark >/dev/null 2>&1) &
fi
}
+135
View File
@@ -0,0 +1,135 @@
#!/bin/sh /etc/rc.common
# Merged from luci-app-taskplan — full independence edition
# Author: sirpdboy (original) / quickactions merge
START=99
STOP=10
TMP=/etc/quickactions-taskplan
LOG=$TMP/taskplan.log
TT=$TMP/taskplanrun
CR=/etc/crontabs/root
HANDLER=/usr/bin/quickactions-taskplanhandler
[ ! -d $TMP ] && mkdir -p $TMP 2>/dev/null
[ ! -s $LOG ] && echo '' > $LOG
run_taskplan()
{
[ -n "$(uci -q get taskplan.@global[0].customscript)" ] && \
uci -q get taskplan.@global[0].customscript > $TMP/taskplancustomscript && \
sed -i 's/\r$//' $TMP/taskplancustomscript
[ -n "$(uci -q get taskplan.@global[0].customscript2)" ] && \
uci -q get taskplan.@global[0].customscript2 > $TMP/taskplancustomscript2 && \
sed -i 's/\r$//' $TMP/taskplancustomscript2
ssum=$(uci -q show taskplan | grep -c "stime\[[0-9]\]" || echo 0)
lsum=$(uci -q show taskplan | grep -c "ltime\[[0-9]\]" || echo 0)
sed -i '/quickactions-taskplanhandler/d' $CR >/dev/null 2>&1
for i in $(seq 0 $((ssum-1)) 2>/dev/null); do
enable=$(uci -q get taskplan.@stime[$i].enable)
if [ "x$enable" = "x1" ]; then
month=$(uci -q get taskplan.@stime[$i].month || echo "*")
stype=$(uci -q get taskplan.@stime[$i].stype)
week=$(uci -q get taskplan.@stime[$i].week || echo "*")
minute=$(uci -q get taskplan.@stime[$i].minute || echo "0")
hour=$(uci -q get taskplan.@stime[$i].hour || echo "*")
[ "$hour" = "0" ] && hour="0"
[ "$minute" = "0" ] && minute="0"
case "$stype" in
1) cmd="$minute $hour * $month $week $HANDLER reboot Scheduled_task" ;;
2) cmd="$minute $hour * $month $week $HANDLER poweroff Scheduled_task" ;;
3) cmd="$minute $hour * $month $week $HANDLER network Scheduled_task" ;;
4) cmd="$minute $hour * $month $week $HANDLER restartsamba Scheduled_task" ;;
5) cmd="$minute $hour * $month $week $HANDLER restartwan Scheduled_task" ;;
6) cmd="$minute $hour * $month $week $HANDLER closewan Scheduled_task" ;;
7) cmd="$minute $hour * $month $week $HANDLER clearmem Scheduled_task" ;;
8) cmd="$minute $hour * $month $week $HANDLER sysfree Scheduled_task" ;;
9) cmd="$minute $hour * $month $week $HANDLER disreconn Scheduled_task" ;;
10) cmd="$minute $hour * $month $week $HANDLER disrereboot Scheduled_task" ;;
11) cmd="$minute $hour * $month $week $HANDLER restartmwan3 Scheduled_task" ;;
12) cmd="$minute $hour * $month $week $HANDLER customscript Scheduled_task" ;;
13) cmd="$minute $hour * $month $week $HANDLER upwifi Scheduled_task" ;;
14) cmd="$minute $hour * $month $week $HANDLER downwifi Scheduled_task" ;;
15) cmd="$minute $hour * $month $week $HANDLER customscript2 Scheduled_task" ;;
16) cmd="$minute $hour * $month $week $HANDLER restartlan Scheduled_task" ;;
esac
echo "$cmd" >> $CR
fi
done
echo "#!/bin/sh" > $TT
chmod +x $TT
for i in $(seq 0 $((lsum-1)) 2>/dev/null); do
enable=$(uci -q get taskplan.@ltime[$i].enable)
if [ "x$enable" = "x1" ]; then
stype=$(uci -q get taskplan.@ltime[$i].stype)
delay=$(uci -q get taskplan.@ltime[$i].delay || echo 10)
case "$stype" in
1) echo "(sleep $delay && $HANDLER reboot Startup_task) &" >>$TT ;;
2) echo "(sleep $delay && $HANDLER poweroff Startup_task) &" >>$TT ;;
3) echo "(sleep $delay && $HANDLER network Startup_task) &" >>$TT ;;
4) echo "(sleep $delay && $HANDLER restartsamba Startup_task) &" >>$TT ;;
5) echo "(sleep $delay && $HANDLER restartwan Startup_task) &" >>$TT ;;
6) echo "(sleep $delay && $HANDLER closewan Startup_task) &" >>$TT ;;
7) echo "(sleep $delay && $HANDLER clearmem Startup_task) &" >>$TT ;;
8) echo "(sleep $delay && $HANDLER sysfree Startup_task) &" >>$TT ;;
9) echo "(sleep $delay && $HANDLER disreconn Startup_task) &" >>$TT ;;
10) echo "(sleep $delay && $HANDLER disrereboot Startup_task) &" >>$TT ;;
11) echo "(sleep $delay && $HANDLER restartmwan3 Startup_task) &" >>$TT ;;
12) echo "(sleep $delay && $HANDLER customscript Startup_task) &" >>$TT ;;
13) echo "(sleep $delay && $HANDLER upwifi Startup_task) &" >>$TT ;;
14) echo "(sleep $delay && $HANDLER downwifi Startup_task) &" >>$TT ;;
15) echo "(sleep $delay && $HANDLER customscript2 Startup_task) &" >>$TT ;;
16) echo "(sleep $delay && $HANDLER restartlan Startup_task) &" >>$TT ;;
esac
fi
done
echo 'exit 0' >> $TT
}
start()
{
del_cru
run_taskplan
/etc/init.d/cron reload
echo "$(date): quickactions-taskplan started" >> $LOG
}
boot()
{
del_cru
run_taskplan
/etc/init.d/cron reload
if [ -f $TT ] && [ -s $TT ]; then
echo "$(date +'%Y-%m-%d %H:%M:%S'): Executing taskplanrun at boot" >> $LOG
if command -v bash >/dev/null 2>&1; then bash $TT >> $LOG 2>&1 & else sh $TT >> $LOG 2>&1 & fi
fi
}
stop()
{
del_cru
/etc/init.d/cron reload
}
restart()
{
stop
sleep 2
start
}
del_cru()
{
sed -i '/quickactions-taskplanhandler/d' $CR >/dev/null 2>&1 || true
echo "#!/bin/sh" > $TT
chmod +x $TT
}