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

fatal() {
  echo "svc-add: 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-add $@" >&2
    exit 1
  fi
}

if [ "$1" = -d ]; then
  down=true
  shift
else
  down=false
fi

usage $# 1 2 "[-d] svc-directory [svc-name]"

svcdir="$1"
if ! echo "$svcdir" | egrep '^/' >/dev/null 2>&1; then
  svcdir="${SVCLOCKDIR-/var/service}/$svcdir"
fi

if [ "X$2" = X ]; then
  svcname="`basename "$svcdir"`"
else
  svcname="$2"
fi

if [ -e "$svcname" ]; then
  fatal "Service '$svcname' is already set up."
fi

if ! [ -d "$svcdir" ]; then
  fatal "'$svcdir' is not a directory."
fi

if $down; then
  touch "$svcdir"/down
fi

if [ -d "$svcdir"/log ]; then
  chmod +t "$svcdir"
  if $down; then
    touch "$svcdir"/log/down
  fi
else
  chmod -t "$svcdir"
fi

ln -s "$svcdir" "$svcname"
