#!/bin/sh

LOGGER_PIDFILE=/var/run/loadlogger.pid

export PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/command

[ -z "${COLUMNS:-}" ] && COLUMNS=80
#[ -z "${CONSOLETYPE:-}" ] && CONSOLETYPE="`/sbin/consoletype`"
if tty|grep -q dev.pts
then
  CONSOLETYPE=pty
else
  NO_OUTPUT=1
  CONSOLETYPE=serial
fi
BOOTUP=color
RES_COL=60
MOVE_TO_COL="echo -en \\033[${RES_COL}G"
SETCOLOR_SUCCESS="echo -en \\033[1;32m"
SETCOLOR_FAILURE="echo -en \\033[1;31m"
SETCOLOR_WARNING="echo -en \\033[1;33m"
SETCOLOR_NORMAL="echo -en \\033[0;39m"
LOGLEVEL=1
if [ "$CONSOLETYPE" = "serial" ]; then
    BOOTUP=serial
    MOVE_TO_COL=
    SETCOLOR_SUCCESS=
    SETCOLOR_FAILURE=
    SETCOLOR_WARNING=
    SETCOLOR_NORMAL=
fi
echo_success() {
  [ "$NO_OUTPUT" ] || {
    [ "$BOOTUP" = "color" ] && $MOVE_TO_COL
    echo -n "[  "
    [ "$BOOTUP" = "color" ] && $SETCOLOR_SUCCESS
    echo -n $"OK"
    [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
    echo -n "  ]"
    echo
  }
  return 0
}
echo_failure() {
  [ "$NO_OUTPUT" ] || {
    [ "$BOOTUP" = "color" ] && $MOVE_TO_COL
    echo -n "["
    [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
    echo -n $"FAILED"
    [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
    echo -n "]"
    echo
  }
  return 1
}

case "$1" in
    start)
        [ "$NO_OUTPUT" ] || echo -n "Starting nagios-cache"
        grep -q nagios-cache /etc/fstab || echo "/dev/ram0   /nagios-cache   ramfs   defaults    0 0" >>/etc/fstab
        kill -9 $(pidof knoerre) 2>/dev/null
        umount /nagios-cache 2>/dev/null && {
          /bin/rm -rf /nagios-cache;mkdir -p /nagios-cache/bin;ln -s /opt/nagios-fwb/bin/knoerre /nagios-cache/bin/knoerre;chmod -R go-rwx /nagios-cache/.
        }
        mount -t ramfs /dev/ram0 /nagios-cache
        RETVAL=$?
        if [ $RETVAL -eq 0 ]
        then
          mkdir -p /nagios-cache/bin 2>/dev/null
          /bin/cp -af /opt/nagios-fwb/bin/knoerre /nagios-cache/bin/knoerre 2>/dev/null
          for KEY in \
            allsmart \
            cpuic/895 \
            cpusc/55 \
            cpuuc/55 \
            cpuwc/55 \
            dirlevels/home/www/@/html \
            filesizes/home/www/@/html/fileadmin/logfile.log \
            filesizes/home/www/@/logs/access.log \
            filesizesbysuffix/.gif/2/home/www/@/html/typo3temp \
            filesizesbysuffix/.jpg/2/home/www/@/html/typo3temp \
            fsckage \
            ipmi \
            maxdirentries/2/home/www/@/html/typo3temp \
            maxdirentries/4/home/www/@/html \
            maxfilesizes/2/home/www/_ \
            maxfilesizes/9/home/www/@/html \
            maxfilesizessum/1/home/www/@/tmp \
            tslogentries/1/home/www/@/tmp/mail.log \
            tslogentries/1:/home/www/@/tmp/mail.log \
          
          do
            KEYDIR=${KEY%/*}
            [ "$KEY" != "$KEYDIR" ] && mkdir -p "/nagios-cache/$KEYDIR" 2>/dev/null
            echo 0 >"/nagios-cache/$KEY" 2>/dev/null
          done
          chmod -R go-rwx /nagios-cache/.
        fi
        [ "$NO_OUTPUT" ] || {
          [ $RETVAL -eq 0 ] && echo_success || echo_failure
        }
        ;;
    status)
        if mount|grep -q nagios-cache
        then
          echo nagios-cache is mounted
        else
          echo no nagios-cache mount found
        fi
        ;;
esac
