#!/bin/sh

OSEC_LOCK_NAME='/var/lock/osec'
OSEC_PID_NAME='/var/run/osec'
OSEC_DB_DIR='/var/lib/osec'
OSEC_DIRS_CONF='/etc/osec/dirs.conf'

. /etc/osec/alterator-pipe.conf
LOGROTATE_CMD="${LOGROTATE_CMD:-/bin/true}"
REPORT_PIPE="${REPORT_PIPE:-/usr/bin/osec_reporter}"
LOG_PIPE="${LOG_PIPE:-/usr/bin/tee \"/var/log/osec.log\"}"
SEND_PIPE="${SEND_PIPE:-/bin/mail -s \"[osec] Integrity test\" root}"

flock -n "$OSEC_LOCK_NAME" -c "\
$LOGROTATE_CMD && \
(((/usr/bin/osec -D \"$OSEC_DB_DIR\" -f \"$OSEC_DIRS_CONF\" & \
   echo \$! > \"$OSEC_PID_NAME\"; wait \$!); \
  rc=\$?; [ \$rc -eq 0 ] || \
  echo \"Program exited abnormally, exit code = \$rc\" >&2) |
 $REPORT_PIPE) 2>&1 | \
$LOG_PIPE | $SEND_PIPE"

if [ $? -ne 0 ]; then
    echo "Another copy of program is already running, according to \
the file '$OSEC_LOCK_NAME'. Its PID should be in \
'$OSEC_PID_NAME'."
else
    rm "$OSEC_PID_NAME"
    rm "$OSEC_LOCK_NAME"
fi
