#!/bin/sh
#
# A handy command to start/stop/restart daemons using scripts in /etc/init.d.
#
mode=$(basename "$0")

log() {
  echo "$@" >&2
}

usage() {
  log "Usage: start|stop|restart <programs...>"
  exit 99
}

endswith() {
  [ "$1" != "${1%$2}" ]
}

suggestions() {
  local prog="$1" d
  for d in /etc/init.d/S??*; do
    if { echo "$d"; cat "$d"; } | grep "$prog" >/dev/null; then
      echo "${d#/etc/init.d/S??}(${d#/etc/init.d/})"
    fi
  done
}


case "$mode" in
  start|stop|restart) ;;
  *) usage ;;
esac

rv=0
any=
for prog in "$@"; do
  prog=$(basename "$prog")
  prog=${prog#S??}
  lockfile-create --use-pid /var/run/startstop.$prog
  any=1
  found=
  for script in /etc/init.d/S??$prog /etc/init.d/S??$prog.sh; do
    if [ -x "$script" ]; then
      found=1
      $script $mode || rv=1
      break
    elif [ -e "$script" ] && endswith "$script" .sh; then
      found=1
      . $script $mode || rv=1
      break
    fi
  done
  if [ -z "$found" ]; then
    log "Error: no /etc/init.d script matches '$prog'" >&2
    log "Error: suggestion:" $(suggestions "$prog")
    rv=1
  fi
  lockfile-remove /var/run/startstop.$prog
done

if [ -z "$any" ]; then
  usage
fi

exit $rv
