#!/bin/sh

################################################################################
#      This file is part of OpenELEC - http://www.openelec.tv
#      Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
#  This Program is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2, or (at your option)
#  any later version.
#
#  This Program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with OpenELEC.tv; see the file COPYING.  If not, write to
#  the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
#  http://www.gnu.org/copyleft/gpl.html
################################################################################

. /etc/profile

LOCKDIR="/var/lock/"
LOCKFILE="dcron.disabled"

ADDON_NAME="service.system.dcron"
ADDON_DIR="$HOME/.xbmc/addons/$ADDON_NAME"
ADDON_HOME="$HOME/.xbmc/userdata/addon_data/$ADDON_NAME"

if [ ! "$(pidof crond)" ]; then
  mkdir -p $ADDON_HOME

  if [ ! -d $ADDON_HOME/crontabs ]; then
    mkdir -p $ADDON_HOME/cron.hourly
    mkdir -p $ADDON_HOME/cron.daily
    mkdir -p $ADDON_HOME/cron.weekly
    mkdir -p $ADDON_HOME/cron.monthly

    mkdir -p $ADDON_HOME/crontabs
    mkdir -p $ADDON_HOME/cronstamps
    mkdir -p $ADDON_HOME/cron.d

    cp $ADDON_DIR/config/root.crond $ADDON_HOME/cron.d/root
    cp $ADDON_DIR/config/prune-cronstamps $ADDON_HOME/cron.d/
    cp $ADDON_DIR/config/root.crontabs $ADDON_HOME/crontabs/root
  fi

  export PATH=$ADDON_DIR/bin:$PATH

# Restart process if it terminates.
  if [ -f "$LOCKDIR/$LOCKFILE" ] ; then
    rm -rf "$LOCKDIR/$LOCKFILE"
  fi
  while [ true ] ; do
    if [ -f "$LOCKDIR/$LOCKFILE" ] ; then
      break
    fi
    crond -f -l info
    sleep 1
  done &
fi
