From 45db0e60d2ff57ac94b8f4130a6878b148dcdb2a Mon Sep 17 00:00:00 2001 From: Paul Spooren Date: Thu, 14 Jun 2018 00:08:51 +0900 Subject: [PATCH] alfred: use procd Signed-off-by: Paul Spooren --- alfred/Makefile | 4 +-- alfred/files/alfred.init | 73 ++++++++++++++++++---------------------- 2 files changed, 34 insertions(+), 43 deletions(-) diff --git a/alfred/Makefile b/alfred/Makefile index a0d25a5..2daa5f7 100644 --- a/alfred/Makefile +++ b/alfred/Makefile @@ -8,9 +8,9 @@ include $(TOPDIR)/rules.mk PKG_NAME:=alfred -PKG_VERSION:=2018.1 +PKG_VERSION:=2018.2 PKG_RELEASE:=0 -PKG_HASH:=808fa6acf65c7a8e26405115176a5587157f746108cbe5dd974788eb05416d76 +PKG_HASH:=2bbe9c4fc19a6529c40f7c872406fad8070d145ede970806bd2194e07fba8018 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION) 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 + } } -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 +service_triggers() { + procd_add_reload_trigger "alfred" +} + +stop_service() { + [ -e /etc/crontabs/root ] && { + sed "\|for file in $facters_dir/\* ; do |d" -i /etc/crontabs/root + /etc/init.d/cron restart + } }