Files
op-packages/luci-app-quickactions/root/etc/init.d/quickactions-hotplug
T

68 lines
1.8 KiB
Bash
Executable File

#!/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
}