From 253fd1f0940dceef008604dbf1d9d522b3923a74 Mon Sep 17 00:00:00 2001 From: fbt Date: Fri, 8 Dec 2017 14:39:50 +0300 Subject: [PATCH] default can do arrays now Signed-off-by: fbt --- ssm | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/ssm b/ssm index 3d60b6f..2640f36 100755 --- a/ssm +++ b/ssm @@ -4,11 +4,13 @@ shopt -s nullglob # Utility functions ## Make setting default values a bit less awkward default() { - declare -n _p=$1 - - if ! [[ "$_p" ]]; then - _p=$2 - fi + declare -n _p=$1; shift + + [[ "$_p" ]] || { + for v in "$@"; do + _p+=( "$v" ) + done + } } ## Die. Why not? @@ -407,18 +409,16 @@ main() { fi # Service-level defaults - default service_pidfile "$svc_pidfile" - default service_logfile "$logdir/$service_name.log" - default service_stop_timeout 30 - default service_ready_timeout 15 - default service_stop_signal 15 - default service_reload_signal 1 - default service_ready_flag "$rundir/$service_name.ready" - default service_enabled_flag "$rundir/$service_name.enabled" - default service_stopped_flag "$rundir/$service_name.stopped" - - # default does not support arrays - [[ "$service_signals" ]] || service_signals=( 1 10 12 ) + default service_pidfile "$svc_pidfile" + default service_logfile "$logdir/$service_name.log" + default service_ready_flag "$rundir/$service_name.ready" + default service_enabled_flag "$rundir/$service_name.enabled" + default service_stopped_flag "$rundir/$service_name.stopped" + default service_stop_timeout 30 + default service_ready_timeout 15 + default service_stop_signal 15 + default service_reload_signal 1 + default service_signals 1 10 12 # Let's see if there's a PID if [[ -f "$service_pidfile" ]]; then