Repository : ssh://git@open-mesh.org/openwrt-feed-devel
On branch : master
commit c7c78f024be8d75914d452cfdae2bfa7fd5dd9c5 Author: Paul Spooren mail@aparcar.org Date: Thu Jun 14 00:08:51 2018 +0900
alfred-devel: use procd
Signed-off-by: Paul Spooren mail@aparcar.org Signed-off-by: Sven Eckelmann sven@narfation.org
c7c78f024be8d75914d452cfdae2bfa7fd5dd9c5 alfred-devel/Makefile | 2 ++ alfred-devel/files/alfred.init | 73 ++++++++++++++++++------------------------ 2 files changed, 34 insertions(+), 41 deletions(-)
diff --git a/alfred-devel/Makefile b/alfred-devel/Makefile index d1cb036..0bba5a9 100644 --- a/alfred-devel/Makefile +++ b/alfred-devel/Makefile @@ -22,6 +22,8 @@ PKG_LICENSE:=GPL-2.0
include $(INCLUDE_DIR)/package.mk
+init-y := alfred + define Package/alfred-devel URL:=https://www.open-mesh.org/ SECTION:=net diff --git a/alfred-devel/files/alfred.init b/alfred-devel/files/alfred.init index 8293436..89e33ab 100755 --- a/alfred-devel/files/alfred.init +++ b/alfred-devel/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 + } }