#!/bin/bash
#
# Restart (once-only) daemontools and /etc/init.d services
#

TYPE=service
. `dirname $0`/xsync_functions
xsync_setup $*

MISSING=
for r in $DIR/$ME.d/*; do
  i=`basename $r`
  if [ -e /service/$i ]; then
    CMD="svc -t /service/$i"
  elif [ -n "$INITD" -a -f "$INITD/$i" ]; then
    FILE="$INITD/$i"
    # The restart file can contain an argument to pass to the init.d script
    # instead of the default 'restart'; 'stop' or 'stopstart' will do a 
    # stop-sleep-start sequence
    if [ -s "$r" ]; then
      ACTION=`head -1 $r | sed 's/\r?\n//'`
      if [ "$ACTION" = "stop" -o "$ACTION" = "stopstart" ]; then
        CMD="$FILE stop; sleep 1; $FILE start"
      else
        CMD="$FILE ${ACTION:-restart}"
      fi
    else
      CMD="$FILE restart"
    fi
  elif [ ${i:0:6} = "xsync-" ]; then
    ARG=${i:6}
    if [ "$ARG" = 'cpan' -o "$ARG" = 'yum' -o "$ARG" = 'apt' -o "$ARG" = 'remove' -o "$ARG" = 'packages' -o "$ARG" = 'services' -o "$ARG" = "scripts" ]; then
      CMD="xsync --$ARG"
    else
      echo "WARNING: invalid xsync argument $ARG - deleting restart file $i"
      test -n "$ECHO" || rm -f $DIR/$ME.d/$i
      continue
    fi
  else
    echo "WARNING: cannot find service $i - deleting restart file"
    test -n "$ECHO" || rm -f $DIR/$ME.d/$i
    continue
  fi
  if [ -n "$ECHO" ]; then
    echo $CMD
  else
    $CMD && rm -f $DIR/$ME.d/$i
  fi
done


# arch-tag: cc11f11a-3601-47fa-b733-bbb7370c3753
