X-Git-Url: http://git.openwrt.org/?p=feed%2Frouting.git;a=blobdiff_plain;f=alfred%2Ffiles%2Falfred.init;fp=alfred%2Ffiles%2Falfred.init;h=b2926505d32ad3e9e47c07e3d310f1529c9632fb;hp=8293436870af23914ce2cdcad26e0539d4b3667d;hb=45db0e60d2ff57ac94b8f4130a6878b148dcdb2a;hpb=d82d299a27c0c3e475c8e5be08ccb12dc3cbc433 diff --git a/alfred/files/alfred.init b/alfred/files/alfred.init index 8293436..b292650 100755 --- a/alfred/files/alfred.init +++ b/alfred/files/alfred.init @@ -1,48 +1,40 @@ #!/bin/sh /etc/rc.common -# -# Copyright (C) 2013 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. # START=99 -STOP=99 +USE_PROCD=1 alfred_args="" vis_args="" facters_dir="/etc/alfred" -pid_file_alfred="/var/run/alfred.pid" -pid_file_vis="/var/run/batadv-vis.pid" enable=0 vis_enable=0 -SERVICE_DAEMONIZE=1 -SERVICE_WRITE_PID=1 -wait_for_dir() -{ +wait_for_dir() { local ifce="$1" dir="$2" if ! [ -d "$dir" ] ; then timeout=30 - echo "${initscript}: waiting $timeout secs for $ifce interface..." + echo "waiting $timeout secs for $ifce interface..." for i in $(seq $timeout); do sleep 1 [ -d "$dir" ] && break - if [ $i == $timeout ] ; then - echo "${initscript}: $ifce not detected, alfred not starting." + if [ $i = $timeout ] ; then + echo "$ifce not detected, alfred not starting." exit 1 fi done fi } -wait_for_ll_address() -{ +wait_for_ll_address() { local iface="$1" local timeout=30 - echo "${initscript}: waiting $timeout secs for $iface address..." + echo "waiting $timeout secs for $iface address..." for i in $(seq $timeout); do # We look for # - the link-local address (starts with fe80) @@ -58,12 +50,11 @@ wait_for_ll_address() sleep 1 done - echo "${initscript}: $iface address not detected, alfred not starting." + echo "$iface address not detected, alfred not starting." exit 1 } -alfred_start() -{ +alfred_start() { local args="" local section="$1" local disabled interface mode @@ -103,41 +94,41 @@ alfred_start() return 0 } -start() -{ +start_service() { config_load "alfred" config_foreach alfred_start alfred - if [ "$enable" = "0" ]; then - exit 0 - fi + [ "$enable" = "0" ] && { exit 0 } - echo "${initscript}: starting alfred" - SERVICE_PID_FILE="$pid_file_alfred" - service_start /usr/sbin/alfred ${alfred_args} + procd_open_instance "alfred" + procd_set_param command /usr/sbin/alfred + procd_append_param command ${alfred_args} + procd_close_instance - if [ "$vis_enable" = "1" ]; then - echo "${initscript}: starting batadv-vis" - SERVICE_PID_FILE="$pid_file_vis" - service_start /usr/sbin/batadv-vis ${vis_args} - fi + [ "$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 + } - if [ "$run_facters" = "1" ]; then + [ "$run_facters" = "1" ] && { ( 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 - fi + } +} + +service_triggers() { + procd_add_reload_trigger "alfred" } -stop() -{ - SERVICE_PID_FILE="$pid_file_alfred" - service_stop /usr/sbin/alfred - SERVICE_PID_FILE="$pid_file_vis" - [ -x /usr/sbin/batadv-vis ] && service_stop /usr/sbin/batadv-vis - sed "\|for file in $facters_dir/\* ; do |d" -i /etc/crontabs/root - /etc/init.d/cron restart +stop_service() { + [ -e /etc/crontabs/root ] && { + sed "\|for file in $facters_dir/\* ; do |d" -i /etc/crontabs/root + /etc/init.d/cron restart + } }