#!/bin/bash
# ipcop addon installer for IPCop 2
#
# 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-09-08 by weizen_42 at ipcop-forum dot de
# even more modifications 2009-2011 by weizen_42
#
# $Id: install 472 2011-10-03 10:52:06Z weizen_42 $
#


CMD="$1"
UPGRADE=0

if [ ! -e /usr/lib/ipcop/library.sh ]; then
    echo "Upgrade your IPCop, library.sh is missing"
    exit 1
fi
. /usr/lib/ipcop/library.sh

ismachine i486
if [ ${?} -ne 0 ]; then
    echo "This Addon is for i486 architecture only"
    exit 1
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
}

removefrom_file_old()
{
	cat $1/$2 | sed -e "$3"d > $2
	cp $2 $1/$2
	rm $2
	return 0
}

# installation
ai()
{
    if [ -e /usr/local/bin/digitemp.pl ]; then
        echo "Upgrading"
        UPGRADE=1
        au
    else
        mkdir -p /var/ipcop/addons/digitemp

        echo -e "\033[1mWhich serial port COM1, COM2, etc. (1,2,3,...):\033[0m"
        read PORT
        if [ `expr $PORT : '[0-9]*$'` -eq 0 -o $PORT -eq "0" ] 
        then
            echo -e "\033[1m\033[31mERROR! "$PORT" is no valid COM port";
            exit 10
        fi
        echo "COMPORT=$PORT" > /var/ipcop/addons/digitemp/settings

        echo -e "\033[1mAdapter type 1=DS9097, 2=DS9097U, 3=DS2490 If you are not sure, select 1 (1,2,3):\033[0m"
        read ADAPTER
        if [ $ADAPTER -eq "1" ]; then
            ln -s /usr/local/bin/digitemp_DS9097  /usr/local/bin/digitemp
            echo "ADAPTER=DS9097"  >> /var/ipcop/addons/digitemp/settings
        elif [ $ADAPTER -eq "2" ]; then
            ln -s /usr/local/bin/digitemp_DS9097U /usr/local/bin/digitemp
            echo "ADAPTER=DS9097U" >> /var/ipcop/addons/digitemp/settings
        elif [ $ADAPTER -eq "3" ]; then
            ln -s /usr/local/bin/digitemp_DS2490  /usr/local/bin/digitemp
            echo "ADAPTER=DS2490"  >> /var/ipcop/addons/digitemp/settings
        else
            echo -e "\033[1m\033[31mERROR! "$ADAPTER" is no valid Adapter";
            exit 11
        fi
    fi

    chown -R nobody:nobody /var/ipcop/addons/digitemp

    echo "Copying files"
    cp -p digitemp.pl   /usr/local/bin/digitemp.pl
    cp -p digitemp_DS*  /usr/local/bin
    chown root:root     /usr/local/bin/digitemp*
    chmod 750           /usr/local/bin/digitemp*

    echo "Adding language texts"
    addtolanguage digitemp en,de,cs,ru langs/

    echo "Add CGI"
    addcgi digitemp.cgi

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

    # run digitemp.pl once
    /usr/local/bin/digitemp.pl
}


# deinstallation
au()
{
    if [ ! -e /usr/local/bin/digitemp.pl ]; then
        echo "digitemp addon is not installed !"
        exit 20
    fi

    echo "Remove CGI"
    removecgi digitemp.cgi
    rm -f /home/httpd/html/graphs/digitemp-*
    rm -f /usr/local/bin/digitemp.pl
    rm -f /usr/local/bin/digitemp
    rm -f /usr/local/bin/digitemp_DS*

    echo "Removing cron job"
    removefromfile digitemp /var/spool/cron/root.orig
    # remove OLD stuff
    removefrom_file_old /var/spool/cron/ root.orig "/digitemp - BEGIN/,/digitemp - END/"

    echo "Removing language texts"
    removefromlanguage digitemp
}

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

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

        # remove RRD database & graphs
        rm /var/log/rrd/digitemp.rrd

        # remove settings & directory
        rm -r /var/ipcop/addons/digitemp

        # reinstall fcrontab
        fcrontab -z

        echo "Digitemp removed!"
        echo " ";;
    *)
        err "Invalid Option";;
esac
sync
#end of file
