alfred: use procd 390/head
authorPaul Spooren <mail@aparcar.org>
Wed, 13 Jun 2018 15:08:51 +0000 (00:08 +0900)
committerPaul Spooren <mail@aparcar.org>
Fri, 20 Jul 2018 09:23:10 +0000 (18:23 +0900)
Signed-off-by: Paul Spooren <mail@aparcar.org>
alfred/Makefile
alfred/files/alfred.init

index a0d25a5e932d4aac15e5e66e5dd7156417eb85f7..2daa5f73c408e66c8181aa859f7388ff2bca4478 100644 (file)
@@ -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)
index 8293436870af23914ce2cdcad26e0539d4b3667d..b2926505d32ad3e9e47c07e3d310f1529c9632fb 100755 (executable)
@@ -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
+       }
 }