2013-08-19 23:17:18 +02:00
|
|
|
#!/bin/sh /etc/rc.common
|
|
|
|
|
|
|
|
#
|
|
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
|
|
# See /LICENSE for more information.
|
|
|
|
#
|
|
|
|
|
|
|
|
START=99
|
2018-06-13 17:08:51 +02:00
|
|
|
USE_PROCD=1
|
2013-08-19 23:17:18 +02:00
|
|
|
alfred_args=""
|
|
|
|
vis_args=""
|
2013-10-14 00:01:28 +02:00
|
|
|
facters_dir="/etc/alfred"
|
2013-08-19 23:17:18 +02:00
|
|
|
enable=0
|
|
|
|
vis_enable=0
|
|
|
|
|
2019-08-01 20:58:41 +02:00
|
|
|
append_interface()
|
|
|
|
{
|
|
|
|
append "interfaces" "$1" ","
|
|
|
|
}
|
|
|
|
|
2018-06-13 17:08:51 +02:00
|
|
|
alfred_start() {
|
2013-08-19 23:17:18 +02:00
|
|
|
local args=""
|
|
|
|
local section="$1"
|
2013-12-13 20:05:26 +01:00
|
|
|
local disabled interface mode
|
2019-08-01 20:58:41 +02:00
|
|
|
local interfaces
|
2013-08-19 23:17:18 +02:00
|
|
|
|
|
|
|
# check if section is disabled
|
|
|
|
config_get_bool disabled "$section" disabled 0
|
|
|
|
[ $disabled = 0 ] || return 1
|
|
|
|
|
2021-02-15 21:17:53 +01:00
|
|
|
args="-f"
|
2013-08-19 23:17:18 +02:00
|
|
|
|
2019-08-01 20:58:41 +02:00
|
|
|
config_list_foreach "$section" "interface" append_interface
|
|
|
|
if [ -z "$interfaces" ]; then
|
|
|
|
config_get interface "$section" interface
|
|
|
|
append_interface "$interface"
|
|
|
|
fi
|
|
|
|
append args "-i $interfaces"
|
2013-08-19 23:17:18 +02:00
|
|
|
|
|
|
|
config_get mode "$section" mode
|
|
|
|
[ "$mode" = "master" ] && append args "-m"
|
|
|
|
|
|
|
|
config_get batmanif "$section" batmanif
|
|
|
|
append args "-b $batmanif"
|
|
|
|
|
|
|
|
append alfred_args "$args"
|
|
|
|
enable=1
|
|
|
|
|
2015-05-31 10:39:59 +02:00
|
|
|
config_get_bool start_vis "$section" start_vis 0
|
|
|
|
if [ "$start_vis" = 1 ] && [ -x /usr/sbin/batadv-vis ]; then
|
|
|
|
vis_enable=1
|
|
|
|
append vis_args "-i $batmanif -s"
|
|
|
|
fi
|
2013-08-19 23:17:18 +02:00
|
|
|
|
2013-10-14 00:01:28 +02:00
|
|
|
config_get_bool run_facters "$section" run_facters 0
|
|
|
|
|
2013-08-19 23:17:18 +02:00
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
2018-06-13 17:08:51 +02:00
|
|
|
start_service() {
|
2013-08-19 23:17:18 +02:00
|
|
|
config_load "alfred"
|
|
|
|
config_foreach alfred_start alfred
|
|
|
|
|
2021-02-15 21:03:57 +01:00
|
|
|
[ "$enable" = "0" ] && return 0
|
2013-12-13 20:05:26 +01:00
|
|
|
|
2018-06-13 17:08:51 +02:00
|
|
|
procd_open_instance "alfred"
|
|
|
|
procd_set_param command /usr/sbin/alfred
|
|
|
|
procd_append_param command ${alfred_args}
|
|
|
|
procd_close_instance
|
2013-08-19 23:17:18 +02:00
|
|
|
|
2018-06-13 17:08:51 +02:00
|
|
|
[ "$vis_enable" = "1" ] && {
|
|
|
|
procd_open_instance "batadv-vis"
|
|
|
|
procd_set_param command /usr/sbin/batadv-vis
|
|
|
|
procd_append_param command ${vis_args}
|
|
|
|
procd_close_instance
|
|
|
|
}
|
2013-10-14 00:01:28 +02:00
|
|
|
|
2018-06-13 17:08:51 +02:00
|
|
|
[ "$run_facters" = "1" ] && {
|
2013-10-14 00:01:28 +02:00
|
|
|
( for file in $facters_dir/* ; do [ -x $file ] && $file ; done )
|
|
|
|
if ! ( grep -q "for file in $facters_dir/\* ; do " /etc/crontabs/root 2>/dev/null ) ; then
|
|
|
|
echo "*/5 * * * * ( for file in $facters_dir/* ; do [ -x \$file ] && \$file ; done )" >> /etc/crontabs/root
|
|
|
|
/etc/init.d/cron enable
|
|
|
|
/etc/init.d/cron restart
|
|
|
|
fi
|
2018-06-13 17:08:51 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
service_triggers() {
|
|
|
|
procd_add_reload_trigger "alfred"
|
2013-08-19 23:17:18 +02:00
|
|
|
}
|
|
|
|
|
2018-06-13 17:08:51 +02:00
|
|
|
stop_service() {
|
|
|
|
[ -e /etc/crontabs/root ] && {
|
|
|
|
sed "\|for file in $facters_dir/\* ; do |d" -i /etc/crontabs/root
|
|
|
|
/etc/init.d/cron restart
|
|
|
|
}
|
2013-08-19 23:17:18 +02:00
|
|
|
}
|