#!/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
#
#

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()
{
  ## verify already installed and uninstall
  if [ -e /var/ipcop/xtiface/xtiface.conf ]; then
    echo "Upgrading"
    au
    ./updateconf.pl
  else
    mkdir -p /var/ipcop/xtiface
    cp xtiface.conf /var/ipcop/xtiface/xtiface.conf
    chown nobody:nobody /var/ipcop/xtiface/xtiface.conf
    cp -p /usr/local/bin/restartdhcp /var/ipcop/xtiface/restartdhcp
  fi

  chown nobody:nobody /var/ipcop/xtiface
  
  echo "Copying files"
  cp -p xtiface.cgi /home/httpd/cgi-bin/xtiface.cgi
  cp -p launch-xtiface  /usr/local/bin/launch-xtiface
  cp -p restartdhcp     /usr/local/bin/restartdhcp

  chown root:nobody     /usr/local/bin/launch-xtiface
  chmod 4750            /usr/local/bin/launch-xtiface
  chown root:nobody     /usr/local/bin/restartdhcp
  chmod 4750            /usr/local/bin/restartdhcp

  # supported languages
  # english, german, french
  echo "Adding language texts"
  cd langs/
  addto_lang en.xtiface,de.xtiface,fr.xtiface xtiface
  cd ..

  # try and add to menu
  echo "Adding menu entry"
  addto_header /var/ipcop/ header.pl menu.add "/7.mainlogs.*subMenu.*2.*1/" 1.4.0

  # patch dhcp.cgi
  echo "Patching dhcp.cgi"
  addto_file /home/httpd/cgi-bin/ dhcp.cgi dhcp.cgi.add1 "/our.@ITFs/"
  addto_file /home/httpd/cgi-bin/ dhcp.cgi dhcp.cgi.add2 "/Read.Ipcop.settings/"

  # and add start / reload
  echo "Adding to rc.local"
  cat local.add >> /etc/rc.d/rc.local
  echo "Adding to rc.firewall.local"
  addto_file /etc/rc.d/ rc.firewall.local firewall.add "/'start'/" 
}

# deinstallation
au()
{
  if [ ! -e /var/ipcop/xtiface/xtiface.conf ]; then
    echo "Extra Interfaces addon is not installed !"
    exit
  fi

  echo "Stopping Extra Interfaces"
  /usr/local/bin/launch-xtiface stop 1
  /usr/local/bin/launch-xtiface stop 2
  /usr/local/bin/launch-xtiface stop 3
  /usr/local/bin/launch-xtiface stop 4

  rm /home/httpd/cgi-bin/xtiface.cgi
  rm /usr/local/bin/launch-xtiface

  # remove languages
  echo "Removing language texts"
  removefrom_lang en,de,fr xtiface

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

  # restore dhcp.cgi
  echo "Patching dhcp.cgi"
  removefrom_file /home/httpd/cgi-bin/ dhcp.cgi "/XTIFACE - BEGIN/,/XTIFACE - END/" 

  # remove start / reload
  echo "Removing from rc.local"
  removefrom_file /etc/rc.d/ rc.local "/XTIFACE - BEGIN/,/XTIFACE - END/" 
  echo "Removing from rc.firewall.local"
  removefrom_file /etc/rc.d/ rc.firewall.local "/XTIFACE - BEGIN/,/XTIFACE - END/" 
}


# 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
        cp -p /var/ipcop/xtiface/restartdhcp /usr/local/bin/restartdhcp
	rm  /var/ipcop/xtiface/restartdhcp
	rm  /var/ipcop/xtiface/xtiface.conf
	rm  /var/ipcop/xtiface/lastcheck
	rmdir /var/ipcop/xtiface
	echo "Successfully done!"
        echo " ";;
 
    *)
        err "Invalid Option";;
esac
sync
#end of file
