#!/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 domyślnych wartości dla zmiennych

APP_NAME=KADU
APP_DEF_DIR=/usr
# $1 - nazwy katalogw, $2 - Wartości domyślne

#  Deklaracja funkcji

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

# $1 - scieżka, $2 - plik sprawdzany, $3 - prawidłowy string, $4 - nieprawidłowy 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-openssl" "--with-debug"
	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 zostało zainstalowane do katalogu $APP_DIR"
	echo " ============================================================================="
}

function Deinstal()
{
	clear
	echo " ============================================================================="
	echo "          $APP_NAME zostało pomyślnie usunięte z  katalogu $APP_DIR"
	echo " ============================================================================="
}

function Error()
{
	echo -e "\a"
	echo " ============================================================================="
	echo "            Wystąpił błąd operacja $OPER nie powiodła się"
	echo " ============================================================================="
}
function ShowInfo()
{
 	clear
        echo
	echo " =============================================================================="
	echo "                 PROGRAM BĘDZIE KORZYSTA Z PODANYCH ŚCIEŻEK:"
	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/kde/kapp.h ZNALEZIONE. "NIE ZNALEZIONE!"
	echo "     * KDE Desktop wersja >=3.0.0, w katalogu: [$KDE_DIR], $CORRECT"
	echo " KDE NIE JEST WYMAGANE DO PRAWIDLOWEJ INSTALACJI W INNYCH MENADŻERACH OKIEN"
	CheckPath "$APP_DIR" bin/kadu "ZAINSTALOWANE" "NIE ZAINSTALOWANE"
	echo "     * Lokalizacja $APP_NAME w katalogu: [$APP_DIR], $CORRECT"
	echo
	echo " =============================================================================="
	echo " |                               MENU PROGRAMU                                |"
	echo " =============================================================================="
	echo " |           Naciśnij   L    aby zobaczyć licencje GNU.                       |"
	echo " |           Naciśnij   Q    aby zmienić ścieżkę do biblioteki QT.            |"
	echo " |           Naciśnij   K    aby zmienić ścieżkę do KDE Desktop.              |"
	echo " |           Naciśnij   D    aby zmienić lokalizacje $APP_NAME                     |"
	echo " |           Naciśnij   I    aby rozpocząć instalację.                        |"
	echo " |           Naciśnij   U    aby odinstalować $APP_NAME.                           |"
	echo " |           Naciśnij   B    aby rozpocząć instalację bez libgadu             |"
	echo " |           Naciśnij   S    aby rozpocząć instalację z SSL                  |"
	echo " |           Naciśnij   G    aby rozpocząć instalację z Debug i SSL          |"
	echo " |           Naciśnij   P    aby uzyskać Pomoc za pomocą programu Links       |"
	echo " |           Naciśnij   E    aby zakończyć 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/kde/kapp.h -type f | sed -e 's/\/include\/kde\/kapp.h$//' -e q`
if [ "$KDE_DIR" == "" ]; then
KDE_DIR=`find /opt -path */include/kde/kapp.h -type f | sed -e 's/\/include\/kde\/kapp.h$//' -e q`
fi;
}

#########################################################################################
#                                                       START PROGRAMU                                                                     #
#########################################################################################
clear
echo
	echo " =============================================================================="
	echo "                    Witaj w $APP_NAME Skrypt instalacyjny v0.1.2-1 "
	echo "                        PRZEZNACZONY DLA REDHAT 8.0 I AUROX 8.0"
	echo "  Skrypt ten konfiguruje, kompiluje, instaluje lub odinstalowywuje $APP_NAME"
	echo " =============================================================================="
	echo
	echo " Ten program jest wolnym oprogramowniem. Można go rozprowadzać i modyfikować"
	echo " zgodnie z licencją GNU General Public License opublikowaną przez Free Software"
	echo " Foundation w wersji 2 z późniejszymi zmianami"
	echo
        echo " =============================================================================="
        echo
        echo " Konfiguruję program instalacyjny to może chwilę potrwać bądź 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													 #
########################################################################################
