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