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