1 #!/bin/sh /etc/rc.common
4 # Copyright (C) 2013 OpenWrt.org
6 # This is free software, licensed under the GNU General Public License v2.
7 # See /LICENSE for more information.
14 facters_dir
="/etc/alfred"
15 pid_file_alfred
="/var/run/alfred.pid"
16 pid_file_vis
="/var/run/batadv-vis.pid"
24 local ifce
="$1" dir
="$2"
26 if ! [ -d "$dir" ] ; then
28 echo "${initscript}: waiting $timeout secs for $ifce interface..."
29 for i
in $
(seq $timeout); do
31 [ -d "$dir" ] && break
32 if [ $i == $timeout ] ; then
33 echo "${initscript}: $ifce not detected, alfred not starting."
44 local disabled interface mode
46 # check if section is disabled
47 config_get_bool disabled
"$section" disabled
0
48 [ $disabled = 0 ] ||
return 1
52 config_get interface
"$section" interface
53 append args
"-i $interface"
55 config_get mode
"$section" mode
56 [ "$mode" = "master" ] && append args
"-m"
58 config_get batmanif
"$section" batmanif
59 append args
"-b $batmanif"
61 if [ "$batmanif" != "none" ]; then
62 wait_for_dir
"$batmanif" "/sys/class/net/$batmanif/mesh"
65 wait_for_dir
"$interface" "/sys/class/net/$interface/"
67 append alfred_args
"$args"
70 config_get_bool start_vis
"$section" start_vis
0
71 if [ "$start_vis" = 1 ] && [ -x /usr
/sbin
/batadv-vis
]; then
73 append vis_args
"-i $batmanif -s"
76 config_get_bool run_facters
"$section" run_facters
0
84 config_foreach alfred_start alfred
86 if [ "$enable" = "0" ]; then
90 echo "${initscript}: starting alfred"
91 SERVICE_PID_FILE
="$pid_file_alfred"
92 service_start
/usr
/sbin
/alfred
${alfred_args}
94 if [ "$vis_enable" = "1" ]; then
95 echo "${initscript}: starting batadv-vis"
96 SERVICE_PID_FILE
="$pid_file_vis"
97 service_start
/usr
/sbin
/batadv-vis
${vis_args}
100 if [ "$run_facters" = "1" ]; then
101 ( for file in $facters_dir/* ; do [ -x $file ] && $file ; done )
102 if ! ( grep -q "for file in $facters_dir/\* ; do " /etc
/crontabs
/root
2>/dev
/null
) ; then
103 echo "*/5 * * * * ( for file in $facters_dir/* ; do [ -x \$file ] && \$file ; done )" >> /etc
/crontabs
/root
104 /etc
/init.d
/cron
enable
105 /etc
/init.d
/cron restart
112 SERVICE_PID_FILE
="$pid_file_alfred"
113 service_stop
/usr
/sbin
/alfred
114 SERVICE_PID_FILE
="$pid_file_vis"
115 [ -x /usr
/sbin
/batadv-vis
] && service_stop
/usr
/sbin
/batadv-vis
116 sed "\|for file in $facters_dir/\* ; do |d" -i /etc
/crontabs
/root
117 /etc
/init.d
/cron restart