From de5f6403237e8be91c6def2f5eeb2828fb380029 Mon Sep 17 00:00:00 2001 From: fbt Date: Mon, 14 Nov 2016 06:31:53 +0300 Subject: [PATCH] some path changes Signed-off-by: fbt --- ssm | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/ssm b/ssm index edb9004..a41a109 100755 --- a/ssm +++ b/ssm @@ -307,19 +307,30 @@ main() { mkdir -p "$d" || die 3 "Failed to create runtime dir: $d" done - # service_name is just $1 - service_name=$1 + # If $1 is a full path, source it. + # If not, search for it in the service dir. + if [[ $1 == /* ]]; then + service_config=$1 + else + service_config="$cfgdir/init.d/$1" + fi + + # Die if there is no such file + [[ -f "$service_config" ]] || die "No such file: $service_config" + + # Service name is the basename + service_name="${1##*/}" # Semi-hardcoded stuff svc_pidfile="$rundir/$service_name.pid" # Get the service defaults - [[ -f "$cfgdir/conf.d/$1" ]] && { - source "$cfgdir/conf.d/$1" || die 5 "Failed to read service defaults: $cfgdir/conf.d/$1" + [[ -f "$cfgdir/conf.d/$service_name" ]] && { + source "$cfgdir/conf.d/$service_name" || die 5 "Failed to read service defaults: $cfgdir/conf.d/$service_name" } # Get the service config - source "$cfgdir/init.d/$1" || die 7 "Failed to read the service config: $cfgdir/init.d/$1" + source "$service_config" || die 7 "Failed to read the service config: $cfgdir/init.d/$service_name" # Legacy [[ "$service_args" ]] && service_command=( "${service_command[@]}" "${service_args[@]}" )