#!/bin/sh

STARTED_FILE="/mnt/warez/server-started"
STOPFILE="/tmp/no-ripping"
WARENDIR="/mnt/warez"
LOGFILE="/mnt/warez/streamcd.log"

# Waren-Festplatte draußen -- abbrechen
mount | grep -- "$WARENDIR" &>/dev/null || exit 1

DAY="`date +%u`"
HOUR="`date +%H`"
MIN="`date +%M`"
FERIEN="0"

ps xua | grep streamrippe[r] &>/dev/null || rm "$STARTED_FILE" &>/dev/null
if [ -f "$STARTED_FILE" ]; then
  STARTED=1
else
  STARTED=0
fi

# Rippen am:
# * Wochenende, 00.00-00.00
# * Schultagen, 00.00-7.30 und 16.00-00.00
# * oder wenn Ferien sind: 00.00-00.00
# * jeweils abzüglich: 02.00-02.10 (Prävention dass streamripper amok läuft)
# * und auf gar keinen Fall, wenn $STOPFILE existiert.
if [ -e "$STOPFILE" ]; then
  SHOULD_STARTED=0
  REASON="Existenz von \$STOPFILE"
elif [ "$HOUR" = "02" -a "$MIN" -ge 0 -a "$MIN" -lt 10 ]; then
  SHOULD_STARTED=0
  REASON="Amok-Prävention"
elif [ "$FERIEN" = "1" ]; then
  SHOULD_STARTED=1
  REASON="Ferien"
elif [ "$DAY" = "6" -o "$DAY" = "7" ]; then
  SHOULD_STARTED=1
  REASON="Wochenende"
elif [ "$DAY" = "5" -a "$HOUR" -ge "15" ]; then
  SHOULD_STARTED=1
  REASON="Keine Schulzeit"
elif [ "$HOUR" -ge 16 ]; then
  SHOULD_STARTED=1
  REASON="Keine Schulzeit"
elif [ "$HOUR" -lt 7 ]; then
  SHOULD_STARTED=1
  REASON="Keine Schulzeit"
elif [ "$HOUR" -eq 7 -a "$MIN" -lt 30 ]; then
  SHOULD_STARTED=1
  REASON="Keine Schulzeit"
else
  SHOULD_STARTED=0
  REASON="Schulzeit"
fi

if [ "$STARTED" = "0" -a "$SHOULD_STARTED" = "1" ]; then
  echo "`date`: Starte streamd (Grund: $REASON)..." >> "$LOGFILE"
  su ripper -c 'sh /home/ripper/streamd start &'
elif [ "$STARTED" = "1" -a "$SHOULD_STARTED" = "0" ]; then
  echo "`date`: Stoppe streamd (Grund: $REASON)..." >> "$LOGFILE"
  su ripper -c 'sh /home/ripper/streamd stop &'
fi
