#!/bin/bash

# TODO: 2.0: use kdialog

META_FULL_NAME="KShutDown"
META_VERSION=`cat VERSION`

#if [[ (("$TERM" == "dumb") || ("$TERM" == "xterm")) && ("${1}" != "--launch-in-konsole") ]]; then
#	echo
#	echo "Press Ctrl+C to exit $META_FULL_NAME installer"
#	konsole --notabbar --notoolbar --workdir `dirname "${0}"` -T "$META_FULL_NAME Installer" -e ${0} --launch-in-konsole
#	exit
#fi

# installation dirs
DEFAULT_DIR=`kde-config --prefix`
if [ -z "$DEFAULT_DIR" ]; then
	DEFAULT_DIR="/usr"
fi
INSTALL_DIR="$DEFAULT_DIR"

# colors
DEF_C="\E[37;40m"
KEY_C="\E[31;40m"

# configure options
CONFIGURE_OPTIONS=""
FAST_COMPILATION="true"

# i18n
# english
I18N_TITLE_DOCS="Documentation and License"
I18N_TITLE_SETUP="Compilation and Installation"
I18N_CHANGE_DIR="Change installation directory (prefix)"
I18N_DISABLE_FAST="Disable fast compilation"
I18N_ENABLE_FAST="Enable fast compilation"
I18N_INSTALL="Install"
I18N_LICENSE="License"
I18N_NEWS="What's new? (q - quit)"
I18N_PRESS_ENTER="Press <Enter> to exit"
I18N_QUIT="Quit"
# polish
if [[ ("$LANG" == "pl_PL.UTF-8") || ("$LANG" == "pl_PL") || ("$LANG" == "pl") ]]; then
	I18N_TITLE_DOCS="Dokumentacja i licencja"
	I18N_TITLE_SETUP="Kompilacja i instalacja"
	I18N_CHANGE_DIR="Zmien katalog instalacji (prefix)"
	I18N_DISABLE_FAST="Wylacz szybka kompilacje"
	I18N_ENABLE_FAST="Wlacz szybka kompilacje"
	I18N_INSTALL="Instaluj"
	I18N_LICENSE="Licencja"
	I18N_NEWS="Co nowego? (q - wyjscie)"
	I18N_PRESS_ENTER="Nacisnij <Enter>, aby wyjsc"
	I18N_QUIT="Zakoncz"
fi

# internal functions

ks_kill()
{
	echo
	echo
	echo "Setup: ${1}"
	echo
	echo "$I18N_PRESS_ENTER"
	read
	ks_quit 1
}

ks_quit()
{
	ks_reset
	exit ${1}
}

ks_reset()
{
	tput sgr0
}

ks_show_finish_info()
{
	echo
	echo "Thank you for using $META_FULL_NAME!"
	echo "  The $META_FULL_NAME Team"
	echo
	echo "HOW TO RUN?"
	echo
	echo "K Menu: Accessories -> KShutDown"
	echo "Command: kshutdown"
	echo "Command line options: kshutdown --help"
	echo
	echo -e "$I18N_PRESS_ENTER"
	read
}

ks_show_menu()
{
	echo -e "$DEF_C"
	clear
	echo
	echo
	echo "    $META_FULL_NAME $META_VERSION Setup"
	echo
	echo
	echo -e "    ${KEY_C}${I18N_TITLE_SETUP}${DEF_C}"
	echo -e "    [${KEY_C}i${DEF_C}] $I18N_INSTALL (./configure --prefix=${INSTALL_DIR}, make, kdesu -c \"make install\")"
	echo -e "    [${KEY_C}p${DEF_C}] $I18N_CHANGE_DIR"
	if [ -n "$FAST_COMPILATION" ]; then
		echo -e "    [${KEY_C}f${DEF_C}] $I18N_DISABLE_FAST";
	else
		echo -e "    [${KEY_C}f${DEF_C}] $I18N_ENABLE_FAST (--enable-final)";
	fi
	echo
	echo -e "    ${KEY_C}${I18N_TITLE_DOCS}${DEF_C}"
	echo -e "    [${KEY_C}n${DEF_C}] $I18N_NEWS"
	echo -e "    [${KEY_C}l${DEF_C}] $I18N_LICENSE (GNU GPL)"
	echo -e "    [${KEY_C}r${DEF_C}] Readme"
	echo
	echo -e "    [${KEY_C}q${DEF_C}] $I18N_QUIT"
	echo
	echo
	echo "    http://kshutdown.sourceforge.net"
}

while [ 1 ]; do
	ks_show_menu
	# wait for a single key
	read -n 1 -s

	# install
	if [[ ("$REPLY" == "i") || ( "$REPLY" == "I" ) ]]; then
		if [ -n "$FAST_COMPILATION" ]; then
			CONFIGURE_OPTIONS="--prefix=${INSTALL_DIR} --enable-final";
		else
			CONFIGURE_OPTIONS="--prefix=${INSTALL_DIR}";
		fi
		echo
		echo "Setup: Configuring with '$CONFIGURE_OPTIONS'..."
		echo
		# configure
		if ./configure $CONFIGURE_OPTIONS; then
			echo "Setup: Compiling..."
			echo "       This may take a few minutes."
			# make
			if make; then
				if [ -w "${INSTALL_DIR}" ]; then
					if make install; then
						ks_show_finish_info
						ks_quit
					else
						ks_kill "Installation failed!"
					fi
				else
					if kdesu -c "make install"; then
						ks_show_finish_info
						ks_quit
					else
						ks_kill "Installation failed!"
					fi
				fi
			else
				ks_kill "Compilation failed!"
			fi
		else
			echo
			echo
			echo "Setup: Make sure you have installed the 'kdelibs-devel' package"
			echo "       which is required to compile any KDE application."
			ks_kill "Configuration failed!"
		fi
		ks_quit

	# prefix
	elif [[ ("$REPLY" == "p") || ( "$REPLY" == "P" ) ]]; then
		echo
		echo "Enter a new prefix [${DEFAULT_DIR}]: "
		read -e
		if [ -z "$REPLY" ]; then
			REPLY="$DEFAULT_DIR"
		fi
		INSTALL_DIR="$REPLY"

	# toggle fast compilation
	elif [[ ("$REPLY" == "f") || ( "$REPLY" == "F" ) ]]; then
		if [ -z "$FAST_COMPILATION" ]; then
			FAST_COMPILATION="true";
		else
			FAST_COMPILATION="";
		fi

	# news
	elif [[ ("$REPLY" == "n") || ( "$REPLY" == "N" ) ]]; then
		less "NEWS"

	# license
	elif [[ ("$REPLY" == "l") || ( "$REPLY" == "L" ) ]]; then
		less "COPYING"

	# readme
	elif [[ ("$REPLY" == "r") || ( "$REPLY" == "R" ) ]]; then
		less "README"

	# quit
	elif [[ ("$REPLY" == "q") || ( "$REPLY" == "Q" ) ]]; then
		ks_reset
		clear
		exit
	fi

done


syntax highlighted by Code2HTML, v. 0.9.1