tools: fix new init script wrt. multi-instance

TBH when I looked at watchfrr I didn't see any MI support and hence
assumed this just didn't work to begin with.  However, it actually does
(transparently to watchfrr, by just using "ospfd-1" as daemon name.)

So, fix this up and make it work again.

(Also remove 2 extraneous \n in messages.)

Signed-off-by: David Lamparter <equinox@diac24.net>
This commit is contained in:
David Lamparter 2019-02-19 00:27:45 +01:00 committed by David Lamparter
parent bd2893d57f
commit 195f215cfc

View File

@ -67,9 +67,9 @@ vtysh_b () {
daemon_inst() { daemon_inst() {
# note this sets global variables ($dmninst, $daemon, $inst) # note this sets global variables ($dmninst, $daemon, $inst)
dmninst="$1" dmninst="$1"
daemon="${dmninst%:*}" daemon="${dmninst%-*}"
inst="" inst=""
[ "$daemon" != "$dmninst" ] && inst="${dmninst#*:}" [ "$daemon" != "$dmninst" ] && inst="${dmninst#*-}"
} }
daemon_list() { daemon_list() {
@ -89,9 +89,12 @@ daemon_list() {
enabled="$enabled $daemon" enabled="$enabled $daemon"
if [ -n "$inst" ]; then if [ -n "$inst" ]; then
debug "$daemon multi-instance $inst" debug "$daemon multi-instance $inst"
oldifs="${IFS}"
IFS="${IFS},"
for i in $inst; do for i in $inst; do
enabled="$enabled $daemon:$inst" enabled="$enabled $daemon-$i"
done done
IFS="${oldifs}"
fi fi
else else
debug "$daemon disabled" debug "$daemon disabled"
@ -116,7 +119,7 @@ daemon_prep() {
inst="$2" inst="$2"
[ "$daemon" = "watchfrr" ] && return 0 [ "$daemon" = "watchfrr" ] && return 0
[ -x "$D_PATH/$daemon" ] || { [ -x "$D_PATH/$daemon" ] || {
log_failure_msg "cannot start $daemon${inst:+ (instance $inst)}: daemon binary not installed\n" log_failure_msg "cannot start $daemon${inst:+ (instance $inst)}: daemon binary not installed"
return 1 return 1
} }
[ -r "$C_PATH/frr.conf" ] && return 0 [ -r "$C_PATH/frr.conf" ] && return 0
@ -276,7 +279,7 @@ load_old_config() {
} }
[ -r "$C_PATH/daemons" ] || { [ -r "$C_PATH/daemons" ] || {
log_failure_msg "cannot run $@: $C_PATH/daemons does not exist\n" log_failure_msg "cannot run $@: $C_PATH/daemons does not exist"
exit 1 exit 1
} }
. "$C_PATH/daemons" . "$C_PATH/daemons"