From: Claire Mouton Date: Thu, 11 Apr 2013 08:39:40 +0000 (+0200) Subject: Revert "Feature #1929 Removed menu.sh." X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=a320a6a7a1cc99a9b8d50b57951fa2422301e3a0;p=creaToolsTools.git Revert "Feature #1929 Removed menu.sh." This reverts commit c3572f087ca2baa17db8879ea1c4b25de0a9178c. Conflicts: Linux/README.txt --- diff --git a/Linux/README.txt b/Linux/README.txt index 73ec67c..0106b05 100644 --- a/Linux/README.txt +++ b/Linux/README.txt @@ -23,8 +23,14 @@ -######################################################################## +####################################### To install the CreaTools under Linux, use installscript. +menu.sh is deprecated. This script should not be used. (It will disappear in a near future.) + + +=================================== +Documentation for installscript +=================================== Launch 'installscript' in command line to see the list of options. @@ -45,3 +51,69 @@ or -- If you choose Git: You must have shared your public key on Git CREATIS server. To do so, send your public SSH key to Fabrice Bellet specifying the Git repository name. You need to do it for the Git server, even if you already did it for the CVS or SVN server. + + + +=================================== +Documentation for menu.sh +=================================== +WARNING : +Use always bash (never use sh!) + +A) bash menu.sh + +You will be prompted to say what you want to do : + + Configure :........................0 + Install Third Party Libraries :....1 (as root) + Get and Install the 'CreaTools':...2 + or + Get the 'CreaTools' source files :.2.1 (GIT : as user!) + Compile the CreaTools :..........2.2 + Install the CreaTools :..........2.3 + + Use compact menu :.................5 + or + Use expanded menu :................5 + Uninstall the CreaTools :..........6 + Help ..............................7 Help about this menu + + Show some Environment Variables ...8 + Exit :.............................9 + + +B) As a user, choose 'Configure' (0) + +You will be prompted to give your preferences : + +"Operating System : Fedora/Ubuntu/MacOS" +"Number of Cores" +"Name of the Generation Directory" +"Boolean for Doc Generation : YES/NO" +"Where do you want to get source files from : GIT/HTML" + +-> if you chose GIT: +1/ you must have shared your public key on CREATIS server + +"GIT User name" +"Login 'User' name" +"Login 'Group' name" +"Build type : Release/Debug" +"Gdcm version : GDCM1/GDCM2" +"ITK version : ITK3/ITK4" + +Note : Currently, only GDCM1 and ITK 3 are supported. + +C) - Exit the menu (9). + - Switch as root and run 'bash menu.sh'. + - Choose 'Install Third Party Libraries' (1). + - Close the terminal window. + +D) - Open a new terminal window. + - Switch as a user. + - Launch 'bash menu.sh'. + - Choose 'Get and Install the CreaTools source files' (2). + - Close the terminal window. + +E) Open a new terminal window. + You can work, by launching creaTools.sh! diff --git a/Linux/menu.sh b/Linux/menu.sh new file mode 100644 index 0000000..2d1dbd4 --- /dev/null +++ b/Linux/menu.sh @@ -0,0 +1,645 @@ +# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Santé) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# +# This software is governed by the CeCILL-B license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL-B +# license as circulated by CEA, CNRS and INRIA at the following URL +# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +# or in the file LICENSE.txt. +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL-B license and that you accept its terms. +# ------------------------------------------------------------------------ + + +#!/bin/bash -e + + if [ -f scripts/CreaTools-configure.sh ] + then + source scripts/CreaTools-configure.sh + fi + +expanded="NO" +i=999 +while [ "$i" != 9 ] +do + clear + echo + echo + echo + echo " MENU" + echo + echo " This MENU is deprecated." + echo " Please use installscipt instead." + echo + echo " Choose what you want to do :" + echo + echo " Configure :........................0" + + if [ $expanded = "YES" ] + then + echo " Install all base stuff :..........1.0" + echo " (cmake, doxygen, graphviz, ...)" + echo " Get, Compile, Install vtk .......1.1" + echo " Get, Compile, Install gdcm :.. . .1.2" + echo " Get, Compile, Install itk :.......1.3" + echo " Get, Compile, Install Wx (for Mac Users) :…....1.4" + + else + echo " Install Third Party Libraries :....1 (as root)" + fi + + if [ $expanded = "YES" ] + then + echo " Get the 'CreaTools' source files :.2.1 (GIT : as user!)" + echo " Compile the CreaTools :..........2.2" + # Install creatools as user (no longer as root) // JPR 2/5/2011 + echo " Install the CreaTools :..........2.3" + else + echo " Get and Install the 'CreaTools':...2" + fi + echo + if [ $expanded = "NO" ] + then + echo " Use Expanded menu :................5 " + else + echo " Use compact menu :.................5 " + fi + echo " Uninstall the CreaTools :..........6 " + echo " Help ..............................7 Help about this menu" + echo " Show some Environment Variables ...8" + echo " Exit :.............................9" + echo + echo + echo + + echo "Type in your choice :" + read i + + case $i in + 0) + + # Do it, while we are under user, not under root! # JPR + if [ -f $HOME/.bashrc ] + then + export ETC_BASHRC=$HOME/.bashrc + else + if [ -f $HOME/.profile ] + then + export ETC_BASHRC=$HOME/.profile + else + echo "======================== BIG TROUBLE : neither $HOME/.bashrc nor $HOME/.profile file found" + echo "======================== You'd better to abort the program and (try to) fix the issue" + read a # just to let the user time enough to read the message... + fi + fi + + clear + suitable=XXX + #ls -l scripts/CreaTools-configure.sh + if [ -f scripts/CreaTools-configure.sh ] + then + while [[ "$suitable" != "YES" && \ + "$suitable" != "yes" && \ + "$suitable" != "Y" && \ + "$suitable" != "y" && \ + "$suitable" != "NO" && \ + "$suitable" != "no" ]] + do + echo "'Configure' already done; Content of scripts/CreaTools-configure.sh :" + echo "------------------------" + more scripts/CreaTools-configure.sh + echo "------------------------" + + # WARNING : $installPrefixThird is taken from CreaTools-configure.sh + # If user configured without installing third party library, + # last third party library is still in use! JPR + + if [ ! -f $installPrefixThird/share/creatools_third_party_library_config.sh ] + then + echo WARNING + echo "the curently used Third Party libraries are NOT in $installPrefixThird but ... in :" + grep "installPrefixThird=" $ETC_BASHRC + echo "VTK_DIR : " $VTK_DIR + echo "ITK_DIR : " $ITK_DIR + echo "GDCM_DIR : " $GDCM_DIR + echo "(Have a look at $ETC_BASHRC=, edit it or run again Install Third Party Libraries if you disagree)" + fi + echo + echo "Are these values suitable for you : YES/NO? (default is YES)" + read suitable + if [ "$suitable" = "" ] + then + suitable="YES" + fi + done + else + suitable="NO" + fi + + if [[ "$suitable" = "YES" || "$suitable" = "Y" || "$suitable" = "yes" || "$suitable" = "y" ]] + then + source scripts/CreaTools-configure.sh + fi + + if [[ "$suitable" = "NO" || "$suitable" = "N" || "$suitable" = "no" || "$suitable" = "n" ]] + #if [ "$suitable" = "NO" ] + then + echo + echo + confirm="NO" + while [ "$confirm" != "YES" ] + do + # ///\TODO what about SuSE? Debian? Mandriva? Gentoo? + OperatingSystem="XXX" + while [[ "$OperatingSystem" != "Fedora" && \ + "$OperatingSystem" != "Ubuntu" && \ + "$OperatingSystem" != "MacOS" ]] + do + echo "Operating System : Fedora/Ubuntu/MacOS (default : Fedora)" + read OperatingSystem + if [ "$OperatingSystem" = "" ] + then + OperatingSystem="Fedora" + fi + done + echo "you said : [" $OperatingSystem "]" + echo + echo + + # ------------------ + echo "How many cores on your computer 2 (default is 2)" + read corenumber + if [ "$corenumber" = "" ] + then + corenumber="2" + fi + echo "you said : [" $corenumber "]" + + echo + echo + + racine=$HOME/myDefaultCreatoolsGenerationDir + # ------------------ + echo "Name of the Generation Directory (default is $racine)" + read generationdir + if [ "$generationdir" = "" ] + then + generationdir=$racine + fi + echo "you said : [" $generationdir "]" + + echo + echo + # ------------------ + installPrefixThird="___" + echo "Install Prefix For Third Party Library : '$generationdir/thirdparty_install' / '/usr/local' (default is '$generationdir/thirdparty_install')" + read installPrefixThird + if [ "$installPrefixThird" = "" ] + then + installPrefixThird="$generationdir/thirdparty_install" + fi + echo "you said : [" $installPrefixThird "]" + echo + echo + # ------------------ + + installPrefix="___" + echo "Install Prefix for CreaTools : '$generationdir/creatools_install' / '/usr/local' (default is '$generationdir/creatools_install')" + read installPrefix + if [ "$installPrefix" = "" ] + then + installPrefix="$generationdir/creatools_install" + fi + echo "you said : [" $installPrefix "]" + echo + echo + # ------------------ + +if [ false ] +then + docgeneration="___" + while [[ "$docgeneration" != "ON" && "$docgeneration" != "OFF" ]] + do + echo "Boolean For Doc Generation : ON/OFF (default is OFF)" + read docgeneration + if [ "$docgeneration" = "" ] + then + docgeneration="OFF" + fi + echo "you said : [" $docgeneration "]" + done + echo + echo +fi + +docgeneration="OFF" + + # ------------------ + + sourcesFrom="___" + while [[ "$sourcesFrom" != "GIT" && "$sourcesFrom" != "HTML" ]] + do + echo "Where do you want to get source files from : GIT/HTML ( GIT : for registered CREATIS users only! )" + read sourcesFrom + if [ "$sourcesFrom" = "" ] + then + sourcesFrom="GIT" + fi + echo "you said : [" $sourcesFrom "]" + done + echo + echo + # ------------------ + + gitUserName="" + if [ "$sourcesFrom" = "GIT" ] + then + while [ "$gitUserName" == "" ] + do + echo "GIT User Name ( registered CREATIS user : mandatory!)" + read gitUserName + done + echo "you said : [" $gitUserName "]" + else + gitUserName="ForgetThisOne" + fi + echo + echo + # ------------------ + + + #loginUserName="" + loginUserName=$USER + #while [ "$loginUserName" == "" ] + #do + echo "Have a look at the following line to know 'Login User Name'/'Login Group Name'" + ls -l menu.sh + # echo "Login User Name (mandatory!)" + # read loginUserName + # echo "you said : [" $loginUserName "]" + #done + echo + echo + + loginGroupName="" + while [ "$loginGroupName" == "" ] + do + echo "Have a look at the following line to know 'Login User Name'/'Login Group Name'" + echo "Login Group Name (mandatory!)" + read loginGroupName + echo "you said : [" $loginGroupName "]" + done + echo + echo + # ------------------ + + buildType="___" + while [[ "$buildType" != "Release" && "$buildType" != "Debug" ]] + do + echo "Build type : Release/Debug (default is Release)" + read buildType + if [ "$buildType" = "" ] + then + buildType="Release" + fi + echo "you said : [" $buildType "]" + done + echo + echo + # ------------------ + + gdcmVersion="___" + while [[ "$gdcmVersion" != "GDCM1" && "$gdcmVersion" != "GDCM2" ]] + do + echo "Gdcm version : GDCM1/GDCM2 (default is GDCM1)" + read gdcmVersion + if [ "$gdcmVersion" = "" ] + then + gdcmVersion="GDCM1" + fi + echo "you said : [" $gdcmVersion "]" + done + +# NOT YET CHECKED ! JPR + ITKVersion="___" + while [[ "$ITKVersion" != "ITK3" && "$ITKVersion" != "ITK4" ]] + do + echo "ITK version : ITK3/ITK4 (default is ITK3)" + read ITKVersion + if [ "$ITKVersion" = "" ] + then + ITKVersion="ITK3" + fi + echo "you said : [" $ITKVersion "]" + done + + echo + echo + echo + echo + echo "You said :" + echo " Operating System : $OperatingSystem" + echo " Number of Cores : $corenumber" + echo " Name of the Generation Directory : $generationdir" + echo " Install Prefix for Third Party Libraries : $installPrefixThird" + echo " Install Prefix for CreaTools : $installPrefix" + echo " Boolean for Doc Generation : $docgeneration" + echo " Where do you want to get source files from : $sourcesFrom" + if [ $sourcesFrom = GIT ] + then + echo " GIT User Name : $gitUserName" + fi + echo " Login User Name : $loginUserName" + echo " Login Group Name : $loginGroupName" + echo " Build type : $buildType" + echo " Gdcm version : $gdcmVersion" + echo " ITK version : $ITKVersion" + echo + echo + + echo "Do you confirm your choices : YES/NO ? (default is YES)" + read confirm + if [ "$confirm" = "" ] + then + confirm=YES + fi + done + + # ==> On genere le fichier CreaTools-configure.sh genere chez l'utilisateur (no choice!)... + # + + configureFile="scripts/CreaTools-configure.sh" + touch $configureFile + echo "#!/bin/bash" > $configureFile + echo >> $configureFile + echo "#File generated by 'menu.sh'" >> $configureFile + echo "#DO NOT edit !" >> $configureFile + echo "#(except if you *do* know what you do)" >> $configureFile + echo >> $configureFile + echo "OperatingSystem=$OperatingSystem" >> $configureFile + echo "corenumber=$corenumber" >> $configureFile + echo "generationdir=$generationdir" >> $configureFile + echo "installPrefix=$installPrefix" >> $configureFile + echo "installPrefixThird=$installPrefixThird" >> $configureFile + echo "docgeneration=$docgeneration" >> $configureFile + echo "sourcesFrom=$sourcesFrom" >> $configureFile + echo "gitUserName=$gitUserName" >> $configureFile + echo "loginUserName=$loginUserName" >> $configureFile + echo "loginGroupName=$loginGroupName" >> $configureFile + echo "buildType=$buildType" >> $configureFile + echo "gdcmVersion=$gdcmVersion" >> $configureFile + echo "ITKVersion=$ITKVersion" >> $configureFile + echo "ETC_BASHRC=$ETC_BASHRC" >> $configureFile + + # ------------------ + # endif 'suitable' + fi + ;; + + 1) + echo "========================== 1 " + source scripts/Check-if-root.sh + bash scripts/ThirdParty-install-Base-Stuff.sh + bash scripts/ThirdParty-install-VTK.sh + bash scripts/ThirdParty-install-gdcm.sh + bash scripts/ThirdParty-install-ITK.sh + bash scripts/ThirdParty-install.sh + bash scripts/ThirdParty-install-Finalize.sh + + if [ "$sourcesFrom" = "GIT" ] + then + echo "----------------------------------------------------------------------" + echo OK + echo "To go on, run again 'bash menu.sh' as '$loginUserName', in a new window" + echo "----------------------------------------------------------------------" + else + echo "----------------------------------------------------------------------" + echo OK + echo "To go on, run again 'bash menu.sh' in a new window" + echo "----------------------------------------------------------------------" + fi + echo + echo "==>" + echo "==> You HAVE to leave current window to continue!" + echo "==>" + source $ETC_BASHRC + read a + ;; + + 1.0) + echo "========================== 1.0 " + source scripts/Check-if-root.sh + bash scripts/ThirdParty-install-Base-Stuff.sh + bash scripts/ThirdParty-install-Finalize.sh + ;; + + 1.1) + echo "========================== 1.1 " + #source scripts/Check-if-root.sh + bash scripts/ThirdParty-install-VTK.sh + bash scripts/ThirdParty-install-Finalize.sh + ;; + + 1.2) + echo "========================== 1.2 " + #source scripts/Check-if-root.sh + bash scripts/ThirdParty-install-gdcm.sh + bash scripts/ThirdParty-install-Finalize.sh + ;; + + 1.3) + echo "========================== 1.3 " + #source scripts/Check-if-root.sh + bash scripts/ThirdParty-install-ITK.sh + bash scripts/ThirdParty-install-Finalize.sh + ;; + 1.4) + echo "========================== 1.4 " + #source scripts/Check-if-root.sh + bash scripts/ThirdParty-install-WX.sh + bash scripts/ThirdParty-install-Finalize.sh + read a + ;; + + 2) + #2.1 + bash scripts/CreaTools-load.sh + #2.2 + source scripts/CreaTools-configure.sh + bash scripts/CreaTools-compile.sh + #2.3 + bash scripts/CreaTools-install.sh + echo "==>" + echo "==> You HAVE to leave current window to continue!" + echo "==>" + source $ETC_BASHRC + read a + kill -9 $PPID + ;; + + 2.1) + echo "========================== 2.1" + bash scripts/CreaTools-load.sh + ;; + + 2.2) + echo "========================== 2.2" + source scripts/CreaTools-configure.sh + + bash scripts/CreaTools-compile.sh + + # To allow (*very* aware) user to patch code, later + if [ ! -e $generationdir/creatools_source ] + then + echo "You probabely made a mistake : " + echo "Directory $loginUserName $generationdir/creatools_source not found" + echo "Make sure you know the mistake" + echo "Hit any key to continue" + echo "Fix the mistake!" + read a + else + chown -R $loginUserName $generationdir/creatools_source + chgrp -R $loginGroupName $generationdir/creatools_source + fi + ;; + + 2.3) + + echo "========================= 4" + + bash scripts/CreaTools-install.sh + +# if [ $UID != 0 ] +# then +# echo "You HAVE to leave current window to continue!" +# else +# echo "==> Hit any key to close current window" +# fi + source $ETC_BASHRC + ;; + + 5) + if [ $expanded = "NO" ] + then + expanded="YES" + else + expanded="NO" + fi + ;; + + 6) + echo "========================= 5" + bash scripts/CreaTools-uninstall.sh + echo + echo "==> Hit any key to go on" + read a + ;; + + 7) + clear + echo "===================================" + more README.txt + echo + echo "==> Hit any key to go on" + read a + ;; + + 8) + clear + echo "===================================" + + # WARNING : $installPrefixThird is taken from CreaTools-configure.sh + # If user configured without installing third party library, + # last third party library is still in use! JPR + + + if [ ! -f $installPrefixThird/share/creatools_third_party_library_config.sh ] + then + echo WARNING + echo + echo "the curently used Third Party libraries are NOT in $installPrefixThird but in :" + grep "installPrefixThird=" $ETC_BASHRC + echo "VTK_DIR : " $VTK_DIR + echo "ITK_DIR : " $ITK_DIR + echo "GDCM_DIR : " $GDCM_DIR + echo + echo "installPrefixThird ... " $installPrefixThird + fi + + if [ -f $installPrefixThird/share/creatools_third_party_library_config.sh ] + then + echo "Third party config file : " $installPrefixThird/share/creatools_third_party_library_config.sh + echo ------ + more $installPrefixThird/share/creatools_third_party_library_config.sh + echo ------ + fi + + echo + + if [ -f $installPrefix/share/creatools_base_library_config.sh ] + then + echo "Creatools base library config file : " $installPrefix/share/creatools_base_library_config.sh + echo ------ + more $installPrefix/share/creatools_base_library_config.sh + echo ------ + echo + echo "installPrefix ... " $installPrefix + fi + echo ------ + echo "VTK_DIR : " $VTK_DIR + echo "ITK_DIR : " $ITK_DIR + echo "GDCM_DIR : " $GDCM_DIR + echo + echo "crea_DIR : " $crea_DIR + echo "BBTK_DIR : " $BBTK_DIR + echo "creaMaracasVisu_DIR : " $creaMaracasVisu_DIR + echo "creaEnvironment_DIR : " $creaEnvironment_DIR + echo "creaBruker_DIR : " $creaBruker_DIR + echo "creaImageIO_DIR : " $creaImageIO_DIR + echo "creaContours_DIR : " $creaContours_DIR + echo "creaRigidRegistration_DIR :" $creaRigidRegistration_DIR + echo "bbtkGEditor_DIR : " $bbtkGEditor_DIR + echo "creaTools_DIR : " $creaTools_DIR + echo "creaMiniTools_DIR : " $creaMiniTools_DIR + echo "Ido_DIR : " $Ido_DIR + echo "===================================" + echo + echo "Press any key to continue" + read a + ;; + + 9) + echo + exit 0 + ;; + + 10) + # Hiden option, usefull at debug time + bash scripts/ThirdParty-install_no_compile.sh + ;; + + *) + + if [ expanded="NO" ] + then + echo "Your answer must be in {0, 1, 2, 5, 6, 7, 8, 9} (was [ $i ])" + else + echo "Your answer must be in {0, 1, 2.1, 2.2, 2.3, 5, 6, 7, 8, 9} (was [ $i ])" + fi + ;; + esac + +done + +