#!/bin/sh
set -e
PATH="$PATH:/usr/local/bin"
export PATH
cd "${SVSCANDIR-/service}"

fatal() {
  echo "svc-stop: Fatal error: $@" >&2
  exit 1
}

usage() {
  args=$1; min=$2; max=$3; shift 3
  if [ $args -lt $min -o $args -gt $max ]; then
    echo "$0: usage: svc-stop $@" >&2
    exit 1
  fi
}

if [ "$1" = -q ]; then
  exec >/dev/null
  shift
fi

usage $# 1 1 "[-q] service"

svc="$1"

if ! [ -d "$svc" -o -L "$svc" ]; then
  fatal "Service '$svc' does not exist."
fi

stop() {
  touch "$1"/down
  if svc-isup "$1"; then
    svc -d "$1"
    if svc-waitdown "$1"; then
      echo -n "$1 "
    else
      fatal "Failed to stop '$1'."
    fi
  else
    echo -n "$1 (already down) "
  fi
}

echo -n "Stopping $svc: "

stop "$svc"

if [ -d "$svc/log" ]; then
  stop "$svc/log"
fi

echo "done."
