You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
234 lines
7.5 KiB
234 lines
7.5 KiB
#!/bin/bash
|
|
|
|
function error
|
|
{
|
|
echo ""
|
|
echo " ======================================================================== "
|
|
echo " (( An Error has Been Encountered ))"
|
|
echo " ======================================================================== "
|
|
echo ""
|
|
echo ""
|
|
echo " In the most cases, some libraries are missing or cannot be found."
|
|
echo " Think to install the *-dev or *-devel packages of your distribution."
|
|
echo " For example, if libmng cannot be found,"
|
|
echo " please check if libmng AND libmng-devel packages are installed on your system."
|
|
echo " See the reported errors to know which librarie need to be installed."
|
|
echo ""
|
|
echo $'\a' # Beep to avert user of the error
|
|
exit 1
|
|
}
|
|
|
|
##echo " (( An error has been encountered ))"
|
|
##echo " ((654321 987654321 987654321 98765432 23456789 123456789 123456789 123456))"
|
|
##echo" ((654321 987654321 987654321 98765432 23456789 123456789 123456789 123456))"
|
|
|
|
clear
|
|
echo ""
|
|
echo " ======================================================================== "
|
|
echo " (( BasKet Note Pads Quick Installer ))"
|
|
echo " ======================================================================== "
|
|
echo ""
|
|
echo ""
|
|
echo " Welcome to the BasKet Note Pads installer assistant."
|
|
echo " It will configure, build and install BasKet Note Pads."
|
|
echo ""
|
|
echo ""
|
|
echo " What do you want to do?"
|
|
echo ""
|
|
echo " 1/ Install BasKet Note Pads system wide (you will need the root password)"
|
|
echo " 2/ Install BasKet Note Pads in your user folder"
|
|
#echo " 3/ Uninstall BasKet Note Pads (you should not: it is so fantastic ;-) )"
|
|
echo ""
|
|
|
|
echo -n "Your choice (default is 1): "
|
|
read -n 1 WHAT_TO_DO
|
|
echo ""
|
|
|
|
if [ "_$WHAT_TO_DO" == "_2" ]; then
|
|
SYS_WIDE=0
|
|
WHAT_TO_DO=2 # To transform it from string to int
|
|
else
|
|
# if [ $WHAT_TO_DO == 3 ]; then
|
|
# SYS_WIDE=1
|
|
# else # [ WHAT_TO_DO == 1 ] or default
|
|
SYS_WIDE=1
|
|
WHAT_TO_DO=1 # If user entered another number than those he should
|
|
# fi
|
|
fi
|
|
|
|
if [ $SYS_WIDE == 0 ]; then
|
|
prefix=`kde-config --localprefix --expandvars`
|
|
else
|
|
prefix=`kde-config --prefix --expandvars`
|
|
fi
|
|
|
|
# Uninstall of BasKet:
|
|
if [ $WHAT_TO_DO == 3 ]; then
|
|
# Search installed basket:
|
|
prefix=`kde-config --localprefix --expandvars` # First loacally
|
|
if [ -f $prefix/bin/basket ]; then
|
|
SYS_WIDE=0
|
|
else
|
|
prefix=`kde-config --prefix --expandvars` # And then system wide
|
|
if [ -f $prefix/bin/basket ]; then
|
|
SYS_WIDE=1
|
|
else
|
|
echo "BasKet Note Pads does not seem to be installed."
|
|
exit 1
|
|
fi
|
|
fi
|
|
# TODO: Also definitively remove your baskets?
|
|
# At this stage, SYS_WIDE and prefix are set and uninstall can begin:
|
|
if [ $SYS_WIDE == 1 ]; then
|
|
su
|
|
make uninstall || ./configure --prefix=$prefix && make uninstall
|
|
logout
|
|
else
|
|
make uninstall || ./configure --prefix=$prefix && make uninstall
|
|
fi
|
|
exit 0
|
|
fi
|
|
|
|
appVersion=$(cat basket.spec | grep "%define version " | cut -d " " -f 3)
|
|
isDevel=$(echo "$appVersion" | grep -i -E "(alpha|beta|pre|rc|svn)")
|
|
|
|
clear
|
|
echo ""
|
|
echo " ======================================================================== "
|
|
echo " (( BasKet Note Pads Quick Installer ))"
|
|
echo " ======================================================================== "
|
|
echo ""
|
|
echo ""
|
|
echo ""
|
|
echo ""
|
|
echo " If you do not know what they are, you can ignore errors or warnings."
|
|
echo ""
|
|
echo " The process can take several minutes."
|
|
echo " A beep will notify you when it will be done."
|
|
echo " Press ENTER to start."
|
|
echo ""
|
|
echo ""
|
|
|
|
read -s -n 1 # read 1 character without echo, ended by ENTER
|
|
|
|
if [ ! -e configure ]; then
|
|
clear
|
|
echo ""
|
|
echo " ======================================================================== "
|
|
echo " (( Preparation from SVN ))"
|
|
echo " ======================================================================== "
|
|
echo ""
|
|
echo ""
|
|
|
|
echo "make -f Makefile.cvs"
|
|
make -f Makefile.cvs || error
|
|
fi
|
|
|
|
clear
|
|
echo ""
|
|
echo " ======================================================================== "
|
|
echo " (( Step 1 / 3 : Configuration ))"
|
|
echo " ======================================================================== "
|
|
echo ""
|
|
echo ""
|
|
|
|
if [ "_$isDevel" == "_" ]; then
|
|
echo "./configure --prefix=$prefix"
|
|
./configure --prefix=$prefix || error
|
|
else
|
|
echo "./configure --enable-debug=full --prefix=$prefix"
|
|
./configure --enable-debug=full --prefix=$prefix || error
|
|
fi
|
|
|
|
clear
|
|
echo ""
|
|
echo " ======================================================================== "
|
|
echo " (( Step 2 / 3 : Compilation ))"
|
|
echo " ======================================================================== "
|
|
echo ""
|
|
echo ""
|
|
|
|
echo "make"
|
|
make || error
|
|
|
|
clear
|
|
echo ""
|
|
echo " ======================================================================== "
|
|
echo " (( Step 3 / 3 : Installation ))"
|
|
echo " ======================================================================== "
|
|
echo ""
|
|
echo ""
|
|
echo " The application has successfuly been compiled."
|
|
echo ""
|
|
echo ""
|
|
|
|
echo $'\a' # Beep to avert user the configuration/compilation is ended and he must act to enter the password
|
|
|
|
if [ "_$SYS_WIDE" == "_n" ]; then
|
|
# First make the bin folder to not copy basket file to bin file if bin/ doesn't exist
|
|
mkdir $prefix/bin
|
|
make install
|
|
else
|
|
echo " Please now enter the root password in order to install "
|
|
echo " BasKet Note Pads on the system."
|
|
echo ""
|
|
sudo make install || exit 1
|
|
echo ""
|
|
echo ""
|
|
fi
|
|
|
|
clear
|
|
echo ""
|
|
echo " ======================================================================== "
|
|
echo " (( End of BasKet Note Pads Installation ))"
|
|
echo " ======================================================================== "
|
|
echo ""
|
|
echo ""
|
|
echo " Do you want to run BasKet Note Pads now?"
|
|
echo " If an older version is currently running it will be exited before."
|
|
echo ""
|
|
echo " Notice that you willn't have to exit BasKet : it will be restored each time"
|
|
echo " you log in to KDE."
|
|
echo ""
|
|
echo ""
|
|
|
|
echo -n "Start or restart BasKet Note Pads? [y/n] (default is y): "
|
|
read -n 1 RESTART
|
|
if [ "_$RESTART" != "_" ]; then # If pressed Enter, a new line was already print
|
|
echo ""
|
|
fi
|
|
|
|
if [ "_$RESTART" != "_n" ]; then
|
|
# Get the pid of the process basket, if currently running
|
|
pid=`ps aux | awk '$11 == "basket" { print $2 }'`
|
|
if [ "_$pid" == "_" ]; then
|
|
dummy=0
|
|
else
|
|
kill -s SIGTERM $pid
|
|
fi
|
|
|
|
if [ "_$SYS_WIDE" == "_n" ]; then
|
|
echo "$prefix/bin/basket"
|
|
$prefix/bin/basket
|
|
else
|
|
echo "basket"
|
|
basket
|
|
fi
|
|
fi
|
|
|
|
clear
|
|
echo ""
|
|
echo " ======================================================================== "
|
|
echo " (( Congratulation: BasKet Note Pads is now Installed onto your System ))"
|
|
echo " ======================================================================== "
|
|
echo ""
|
|
echo ""
|
|
echo " In the future, if you want to uninstall BasKet Note Pads, you will have to"
|
|
if [ "_$SYS_WIDE" == "_n" ]; then
|
|
echo " enter the command make uninstall in this folder."
|
|
else
|
|
echo " enter the command su -c 'make uninstall' in this folder."
|
|
fi
|
|
echo ""
|
|
echo ""
|