summaryrefslogtreecommitdiffstats
path: root/installer
diff options
context:
space:
mode:
Diffstat (limited to 'installer')
-rwxr-xr-xinstaller233
1 files changed, 233 insertions, 0 deletions
diff --git a/installer b/installer
new file mode 100755
index 0000000..14626a4
--- /dev/null
+++ b/installer
@@ -0,0 +1,233 @@
+#!/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 ""