#!/bin/bash
#################################################################
# Application Setup Script v0.1.2   (c) 2002 Kadu Team          #
# This program is free software. You can redistribute it and/or #
# modify it under the terms of the GNU General Public License   #
#################################################################


#   Definicja domylnych wartoci dla zmiennych

APP_NAME=KADU
APP_DEF_DIR=/usr
# $1 - nazwy katalogw, $2 - Wartosci domylne

#  Deklaracja funkcji

function AskForPath()
{
	echo -n "Prosz, poda ciek do $1 : "
	read -e
	if [ "$REPLY" == "" ]; then
		REPLY="$2"
	fi;
}

# $1 - scieka, $2 - plik sprawdzany, $3 - prawidowy string, $4 - nieprawidowy string
function CheckPath()
{
	if [ -e $1/$2 ]; then
		CORRECT="$3"
	else
		CORRECT="$4"
	fi;
}

function Konfiguruj()
{
	QTDIR="$QT_DIR"
	LD_LIBRARY_PATH="$QT_DIR/lib:$LD_LIBRARY_PATH"
	export QTDIR
	KDEDIR="$KDE_DIR"
	export KDEDIR
	OPER="Configure"
	./configure "--prefix=$APP_DIR"
	WYK=$?
 if test "$WYK" -ne 0; then
        Error
	exit
 fi;
}

function Konfiguruj_bez_libgadu()
{
	QTDIR="$QT_DIR"
	LD_LIBRARY_PATH="$QT_DIR/lib:$LD_LIBRARY_PATH"
	export QTDIR
	KDEDIR="$KDE_DIR"
	export KDEDIR
	OPER="Configure"
	./configure "--prefix=$APP_DIR" "--with-existing-libgadu"
	WYK=$?
 if test "$WYK" -ne 0; then
        Error
	exit
 fi;
}

function Konfiguruj_z_ssl()
{
	QTDIR="$QT_DIR"
	LD_LIBRARY_PATH="$QT_DIR/lib:$LD_LIBRARY_PATH"
	export QTDIR
	KDEDIR="$KDE_DIR"
	export KDEDIR
	OPER="Configure"
	./configure "--prefix=$APP_DIR" "--with-openssl"
	WYK=$?
 if test "$WYK" -ne 0; then
        Error
	exit
 fi;
}

function Konfiguruj_z_debug()
{
	QTDIR="$QT_DIR"
	LD_LIBRARY_PATH="$QT_DIR/lib:$LD_LIBRARY_PATH"
	export QTDIR
	KDEDIR="$KDE_DIR"
	export KDEDIR
	OPER="Configure"
	./configure "--prefix=$APP_DIR" "--with-debug" "--with-openssl"

	WYK=$?
 if test "$WYK" -ne 0; then
        Error
	exit
 fi;
}

function Kompiluj()
{
	OPER="Kompiluj"
	make
	WYK=$?
if test "$WYK" -ne 0; then
        Error
	exit
 fi;
}

function Zainstaluj()
{	OPER="Zainstaluj"
	make install
	WYK=$?
 if test "$WYK" ;then
        Gratulacje
        exit
        else
        Error
        exit
 fi;
}

function Odinstaluj()
{
	OPER="Odinstaluj"
	make uninstall
	WYK=$?
 if test "$WYK" ;then
        Deinstal
        exit
        else
        Error
        exit
 fi;
}

function Gratulacje()
{
	clear
	echo " ============================================================================="
	echo " 		Gratulacje $APP_NAME zostao zainstalowane do katalogu $APP_DIR"
	echo " ============================================================================="
}

function Deinstal()
{
	clear
	echo " ============================================================================="
	echo " 		$APP_NAME zostao pomylnie usunite z  katalogu $APP_DIR"
	echo " ============================================================================="
}

function Error()
{
	echo -e "\a"
	echo " ============================================================================="
	echo " 		Wystpi bd operacja $OPER nie powioda si"
	echo " ============================================================================="
}
function ShowInfo()
{
 	clear
        echo
	echo " =============================================================================="
	echo "                 PROGRAM BDZIE KORZYSTA Z PODANYCH CIEEK :"
	CheckPath "$QT_DIR" include/qapplication.h ZNALEZIONA. "NIE ZNALEZIONA!"
	echo "     * Biblioteka QT wersja >=3.0.1, w katalogu: [$QT_DIR], $CORRECT"
	CheckPath "$KDE_DIR" include/kapp.h ZNALEZIONE. "NIE ZNALEZIONE!"
	echo "     * KDE Desktop wersja >=3.0.0, w katalogu: [$KDE_DIR], $CORRECT"
	echo "	   KDE NIE JEST WYMAGANE DO INSTALACJI NA INNYCH MENADZERACH OKEN"
	CheckPath "$APP_DIR" bin/kadu "ZAINSTALOWANE" "NIE ZAINSTALOWANE"
	echo "     * Lokalizacja $APP_NAME w katalogu: [$APP_DIR], $CORRECT"
	echo
	echo " =============================================================================="
	echo " |                               MENU PROGRAMU                                |"
	echo " =============================================================================="
	echo " |          Nacinij   L  aby zobaczy licencje GNU.                          |"
	echo " |          Nacinij   Q  aby zmieni ciek do biblioteki QT.               |"
	echo " |          Nacinij   K  aby zmieni ciek do KDE Desktop.                 |"
	echo " |          Nacinij   D  aby zmieni lokalizacje $APP_NAME .                      |"
	echo " |          Nacinij   I  aby rozpocz instalacj                            |"
	echo " |          Nacinij   U  aby odinstalowa $APP_NAME.                              |"
	echo " |          Nacinij   B  aby rozpocz instalacj bez libgadu.               |"
	echo " |          Nacinij   S  aby rozpocz instalacj z szyfrowaniem w SSL.      |"
	echo " |          Nacinij   G  aby rozpocz instalacj z debug i SSL.             |"
	echo " |          Nacinij   P  aby uzyska Pomoc za pomoc programu Links.         |"
	echo " |          Nacinij   E  aby zakoczy program instalacyjny.                 |"
	echo " =============================================================================="
        echo "                 UWAGA!!! musisz mie uprawnienia administratora"
}

function Szuk_kadu
{
APP_DIR=`find $HOME -path */bin/kadu -type f | sed -e 's/\/bin\/kadu$//' -e q`
if [ "$APP_DIR" == "" ]; then
APP_DIR=`find /usr -path */bin/kadu -type f | sed -e 's/\/bin\/kadu$//' -e q`
fi;
if [ "$APP_DIR" == "" ]; then
APP_DIR=`find /opt -path */bin/kadu -type f | sed -e 's/\/bin\/kadu$//' -e q`
fi;
if [ "$APP_DIR" == "" ]; then
APP_DIR="$APP_DEF_DIR"
fi;
}

function Szuk_QT
{
QT_DIR=`find /usr -path */include/qapplication.h -type f | sed -e 's/\/include\/qapplication.h$//' -e q`
if [ "$QT_DIR" == "" ]; then
QT_DIR=`find /opt -path */include/qapplication.h -type f | sed -e 's/\/include\/qapplication.h$//' -e q`
fi;
}

function Szuk_KDE
{
KDE_DIR=`find /usr -path */include/kapp.h -type f | sed -e 's/\/include\/kapp.h$//' -e q`
if [ "$KDE_DIR" == "" ]; then
KDE_DIR=`find /opt -path */include/kapp.h -type f | sed -e 's/\/include\/kapp.h$//' -e q`
fi;
}

#########################################################################################
#                                                       START PROGRAMU                                                                     #
#########################################################################################
clear
echo
	echo " =============================================================================="
	echo "                 Witaj w $APP_NAME  Skrypt instalacyjny v0.1.2"
	echo "  Skrypt ten konfiguruje, kompiluje, instaluje lub odinstalowywuje $APP_NAME ."
	echo " =============================================================================="
	echo
	echo " Ten program jest wolnym oprogramowniem. Mona go rozprowadza i modyfikowa"
	echo " zgodnie z licencj GNU General Public License opublikowan przez Free Software"
	echo " Foundation w wersji 2 z pniejszymi zmianami"
	echo
        echo " =============================================================================="
        echo
        echo " Konfiguruj program instalacyjny to moe chwil potrwa bd cierpliwy"
	echo
	echo "Szukam  KADU..."
		Szuk_kadu
	echo "Szukam  QT..."
		Szuk_QT
#	echo "Szukam KDE..."
		Szuk_KDE

########################################################################################
#					SEKCJA WYBORU MENU										#
########################################################################################
while [ 1 ]; do
	ShowInfo
	while [ 1 ]; do
		read -n 1 -s
		if [[ ("$REPLY" == "L") || ("$REPLY" == "l") ]]; then
			clear
			cat COPYING | more
			break
		fi;
		if [[ ("$REPLY" == "Q") || ("$REPLY" == "q") ]]; then
			AskForPath "biblioteki QT"
			QT_DIR="$REPLY"
			break
		fi;
		if [[ ("$REPLY" == "K") || ("$REPLY" == "k") ]]; then
			AskForPath "KDE Desktop"
			KDE_DIR="$REPLY"
			break
		fi;
		if [[ ("$REPLY" == "D") || ("$REPLY" == "d") ]]; then
			AskForPath "$APP_NAME"
			APP_DIR="$REPLY"
                        break
		fi;
		if [[ ("$REPLY" == "I") || ("$REPLY" == "i") ]]; then
			Konfiguruj
			Kompiluj
			Zainstaluj
		fi;
		if [[ ("$REPLY" == "B") || ("$REPLY" == "b") ]]; then
			Konfiguruj_bez_libgadu
			Kompiluj
			Zainstaluj
		fi;
		if [[ ("$REPLY" == "S") || ("$REPLY" == "s") ]]; then
			Konfiguruj_z_ssl
			Kompiluj
			Zainstaluj
		fi;
		if [[ ("$REPLY" == "G") || ("$REPLY" == "g") ]]; then
			Konfiguruj_z_debug
			Kompiluj
			Zainstaluj
		fi;
		if [[ ("$REPLY" == "U") || ("$REPLY" == "u") ]]; then
			Odinstaluj
		fi;
		if [[ ("$REPLY" == "E") || ("$REPLY" == "e") ]]; then
			exit
		fi;
		if [[ ("$REPLY" == "P") || ("$REPLY" == "p") ]]; then
			links ./doc/index_doc.html
			break
		fi;
	done
done
########################################################################################
#					KONIEC													 #
########################################################################################
