#!/bin/bash
# ipcop addon binary installer Ver 0.9a for IPCop 1.4.x
#
# created 01 January 2005 by Frank 'Darkmann' Koch <darkmann@black-empire.de>
# modified 02 January 2005 by Tom 'wintermute' Eichstaedt <wintermute@tom-e.de>
#
# extended 2006-02-24 by weizen_42
#
# 2006-03-14  cs,lt,pl,ru languages added
# 2006-04-22  install below proxygraphs in status menu
# 2006-05-25  can also use smartctl
#




CMD="$1"

#clear screen if available
if [ -e /bin/clear ]; then
	/bin/clear
fi
if [ -e /usr/bin/clear ]; then
	/usr/bin/clear
fi

#error handling
err()
{
	echo " "
	echo "Error : $1 "
	echo " "
	echo "Choose your option:"
	echo " "
	echo "./install -i   ---> to install"
	echo "./install -u   ---> to uninstall"
	echo " "
	exit
}

# installation
ai()
{
  if [ ! -d /usr/local/share/hddtemp -a ! -e /usr/local/sbin/smartctl ]; then
    echo "hddtemp addon or smartctl must be installed !"
    echo "  Get it from http://www.ipadd.de/binary.html"
#    exit
  fi

  if [ -e /home/httpd/cgi-bin/hddgraph.cgi ]; then
    echo "Upgrading"
    au
    rm /home/httpd/html/graphs/hddtemp-*
  fi

  echo "Copying files"
  cp -p hddgraph.cgi /home/httpd/cgi-bin/hddgraph.cgi
  cp -p hddrrd.pl /usr/local/bin/hddrrd.pl

  mkdir -p /var/ipcop/hddgraph
  cp -p detect_smart.pl /var/ipcop/hddgraph/detect_smart.pl
  if [ ! -e /var/ipcop/hddgraph/settings ]; then
    cp settings /var/ipcop/hddgraph/settings
  fi
  chown -R nobody:nobody /var/ipcop/hddgraph

  # run hddrrd.pl every 5 minutes
  echo "Adding cron job"
  cat cron.add >> /var/spool/cron/root.orig
  fcrontab -z

  # supported languages
  # english, german, dutch, french, spanish, italian
  echo "Adding language texts"
  cd langs/
  addto_lang en.hddgraph,de.hddgraph,nl.hddgraph,fr.hddgraph,es.hddgraph,it.hddgraph,cs.hddgraph,lt.hddgraph,pl.hddgraph,ru.hddgraph HDDGraph
  cd ..

  # try and add to menu
  echo "Adding menu entry"
  addto_header /var/ipcop/ header.pl menu.add "/\/cgi-bin\/proxygraphs.cgi/" 1.4.0

  echo "Adding to rc.local"
  cat local.add >> /etc/rc.d/rc.local

  echo "Adding backup exclude"
  cat backup.exclude >> /var/ipcop/backup/exclude.user 
  correct_backupfiles

  # run hddrrd.pl once
  /var/ipcop/hddgraph/detect_smart.pl
  /usr/local/bin/hddrrd.pl
}

# deinstallation
au()
{
  if [ ! -e /home/httpd/cgi-bin/hddgraph.cgi ]; then
    echo "hddgraph addon is not installed !"
  fi

  rm /home/httpd/cgi-bin/hddgraph.cgi
  rm /usr/local/bin/hddrrd.pl

  # remove cron job
  echo "Removing cron job"
  removefrom_file /var/spool/cron/ root.orig "/hddgraph - BEGIN/,/hddgraph - END/"

  # remove languages
  echo "Removing language texts"
  removefrom_lang en,de,nl,fr,es,it,cs,lt,pl,ru HDDGraph

  # remove menu
  echo "Removing menu entry"
  removefrom_file /var/ipcop/ header.pl "/hddgraph - BEGIN/,/hddgraph - END/" 

  echo "Removing from rc.local"
  removefrom_file /etc/rc.d/ rc.local "/hddgraph - BEGIN/,/hddgraph - END/" 

  echo "Remove backup exclude"
  removefrom_file /var/ipcop/backup/ exclude.user "/var\/ipcop\/hddgraph\/detect_smart.pl/"
  correct_backupfiles
}


# get usefull subroutines
# taken from:
# MOD Addons Server Ver 2.3 for IPCop 1.3.0/1.4.0
. ./library.addons

case $CMD in
    -i|i|install)
        echo " "
        echo "Installing now ..."
        ai
        echo "Successfully done!"
        echo " ";;

    -u|u|uninstall)
        echo " "
        echo "Deinstalling addon now ..."
        au

        # remove RRD database & graphs
        rm /var/log/rrd/hddtemp.rrd
        rm /home/httpd/html/graphs/hddtemp-*
        rm -rf /var/ipcop/hddgraph

        echo "Successfully done!"
        echo " ";;
    *)
        err "Invalid Option";;
esac
sync
#end of file
