X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=Linux%2Fmenu.sh;h=3be1b00a10aba6ac78eaef9493114df253ca1a27;hb=8c418a79f4b2b36f681a8acc9ec28ac601ea8d3b;hp=ca8e420f2b8b9c049b72a6952e60241ebdc7c3f6;hpb=a5d2b9e05c5288fc696c918d02af74b98a606280;p=creaToolsTools.git diff --git a/Linux/menu.sh b/Linux/menu.sh index ca8e420..3be1b00 100644 --- a/Linux/menu.sh +++ b/Linux/menu.sh @@ -1,335 +1,583 @@ -#!/bin/sh +#!/bin/bash -e -if [ $UID != 0 ] -then - echo - echo "..ERROR.." - echo "===================================================" - echo "REMEMBER !" - echo "" - echo "YOU NEED TO RUN THIS ONE AS root" - echo "===================================================" - echo - echo - exit 0 - -else - i=999 -while [ $i != 9 ] + 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 " Choose what you want to do :" + echo + echo " Configure :........................0" + + if [ $expanded = "YES" ] + then + echo " Get and Compile gdcm :.. ......1.1" + echo " Get and Compile itk :.. .......1.2" + echo " Get and Compile vtk :.. .......1.3" + else + echo " Install Third Party Libraries :....1 (as root)" + fi + + if [ $expanded = "YES" ] + then + echo " Get the 'CreaTools' source files :.2.1 (CVS : 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 -echo -echo -echo " MENU" -echo -echo " Choose what you want to do :" -echo -echo " Configure : 0" -echo " Install Third Party Libraries : 1" -echo " Compile the CreaTools : 2" -echo " Install the CreaTools : 3" -echo " Uninstall the CreaTools : 4" -echo -echo " Exit : 9" -echo -echo -echo - -echo "Type in your choice :" -read i + echo "Type in your choice :" + read i case $i in 0) + clear suitable=XXX - ls -l scripts/CreaTools-configure.sh + #ls -l scripts/CreaTools-configure.sh if [ -f scripts/CreaTools-configure.sh ] then while [[ "$suitable" != "YES" && \ - "$suitable" != "NO" ]] + "$suitable" != "yes" && \ + "$suitable" != "Y" && \ + "$suitable" != "y" && \ + "$suitable" != "NO" && \ + "$suitable" != "no" ]] do echo "'Configure' already done : " echo "------------------------" more scripts/CreaTools-configure.sh echo "------------------------" - echo "Are the following values suitable for you : YES/NO (default is YES)?" + + # 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 +# Install creatools as user (no longer as root) // JPR 2/5/2011 + #if [ ! -f /etc/bashrc ] + #then + # export ETC_BASHRC="/etc/bash.bashrc" + #else + # export ETC_BASHRC="/etc/bashrc" + #fi + export ETC_BASHRC=$HOME/.bashrc + 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" + suitable="YES" fi done else - $suitable="NO" - fi - - if [ "$suitable" = "NO" ] - then -echo -echo - confirm="NO" - while [ "$confirm" != "YES" ] - do - OperatingSystem="XXX" - while [[ "$OperatingSystem" != "Fedora" && \ - "$OperatingSystem" != "Ubuntu" && \ - "$OperatingSystem" != "MacOS" ]] - do - echo "Operating System : Fedora/Ubuntu/MacOS (mandatory!)" - read OperatingSystem - done - echo "you said : [" $OperatingSystem "]" -echo -echo - # ------------------ - - - # ------------------ - echo "Name of the Generation Directory (default is /tmp/myGenerationDir)" - read generationdir - if [ "$generationdir" = "" ] - then - generationdir="/tmp/myGenerationDir" + suitable="NO" fi - echo "you said : [" $generationdir "]"su -echo -echo - # ------------------ - - installPrefix="XXX" - echo "Install Prefix : '$generationdir/creatools_install' / '/usr/local' (default is '$generationdir/creatools_install')" - read installPrefix - if [ "$installPrefix" = "" ] + if [[ "$suitable" = "YES" || "$suitable" = "Y" || "$suitable" = "yes" || "$suitable" = "y" ]] then - installPrefix="$generationdir/creatools_install" + source scripts/CreaTools-configure.sh fi - echo "you said : [" $installPrefix "]" -echo -echo - # ------------------ - - docgeneration="XXX" - while [[ "$docgeneration" != "YES" && "$docgeneration" != "NO" ]] - do - echo "Boolean For Doc Generation : YES/NO (default is NO)" - read docgeneration - if [ "$docgeneration" = "" ] - then - docgeneration="NO" - fi - echo "you said : [" $docgeneration "]" - done -echo -echo - # ------------------ - - sourcesFrom="XXX" - while [[ "$sourcesFrom" != "CVS" && "$sourcesFrom" != "HTML" ]] - do - echo "Where do you want to get source files from : CVS/HTML (default is HTML)" - read sourcesFrom - if [ "$sourcesFrom" = "" ] - then - sourcesFrom="HTML" - fi - echo "you said : [" $sourcesFrom "]" - done -echo -echo - # ------------------ - - cvsUserName="" - if [ "$sourcesFrom" = "CVS" ] - then - while [ "$cvsUserName" == "" ] - do - echo "CVS User Name (mandatory!)" - read cvsUserName - done - echo "you said : [" $cvsUserName "]" - else - cvsUserName="ForgetThisOne" - fi -echo -echo - # ------------------ - - linuxUserName="" - while [ "$linuxUserName" == "" ] - do - echo "Have a look at the following line to know 'Login User Name'/'Login Group Name'" - ls -l .bashrc - echo "Login User Name (mandatory!)" - read linuxUserName - echo "you said : [" $linuxUserName "]" - done -echo -echo - - linuxGroupName="" - while [ "$linuxGroupName" == "" ] - do - echo "Have a look at the following line to know 'Login User Name'/'Login Group Name'" - echo "Login Group Name (mandatory!)" - read linuxGroupName - echo "you said : [" $linuxGroupName "]" - done -echo -echo - # ------------------ - buildType="XXX" - while [[ "$buildType" != "Release" && "$Debug " != "HTML" ]] - do - echo "Build type : Release/Debug (default is Release)" - read buildType - if [ "$buildType" = "" ] + if [[ "$suitable" = "NO" || "$suitable" = "N" || "$suitable" = "no" || "$suitable" = "n" ]] + #if [ "$suitable" = "NO" ] then - buildType="Release" - fi - echo "you said : [" $buildType "]" - done -echo -echo - # ------------------ - - gdcmVersion="XXX" - 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 -echo -echo -echo -echo -echo "You said :" -echo " Operating System : $OperatingSystem" -echo " Name of the Generation Directory : $generationdir" -echo " Install Prefix : $installPrefix" -echo " Boolean For Doc Generation : $docgeneration" -echo " Where do you want to get source files from : $sourcesFrom" -if [ $sourcesFrom = CVS ] + echo + echo + confirm="NO" + while [ "$confirm" != "YES" ] + do + + 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 + + # ------------------ + echo "Name of the Generation Directory (default is ~/creaToolsGenerationDir)" + read generationdir + if [ "$generationdir" = "" ] + then + generationdir="~/creaToolsGenerationDir" + 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 -echo " CVS User Name : $cvsUserName" + 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 -echo " Login User Name : $linuxUserName" -echo " Login Group Name : $linuxGroupName" -echo " Build type : $buildType" -echo " Gdcm version : $gdcmVersion" -echo -echo -echo "Do you confirm your choices : YES/NO ? (default is NO)" -read confirm -done +docgeneration="OFF" + + # ------------------ + + sourcesFrom="___" + while [[ "$sourcesFrom" != "CVS" && "$sourcesFrom" != "HTML" ]] + do + echo "Where do you want to get source files from : CVS/HTML ( CVS : for registered CREATIS users only! )" + read sourcesFrom + if [ "$sourcesFrom" = "" ] + then + sourcesFrom="CVS" + fi + echo "you said : [" $sourcesFrom "]" + done + echo + echo + # ------------------ + + cvsUserName="" + if [ "$sourcesFrom" = "CVS" ] + then + while [ "$cvsUserName" == "" ] + do + echo "CVS User Name ( registered CREATIS user : mandatory!)" + read cvsUserName + done + echo "you said : [" $cvsUserName "]" + else + cvsUserName="ForgetThisOne" + fi + echo + echo + # ------------------ + - # GROS SOUCIS : Ou creer le fichier CreaTools-configure.sh? + loginUserName="" + 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!)" + 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 + 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 = CVS ] + then + echo " CVS User Name : $cvsUserName" + fi + echo " Login User Name : $loginUserName" + echo " Login Group Name : $loginGroupName" + echo " Build type : $buildType" + echo " Gdcm version : $gdcmVersion" + echo + echo + + echo "Do you confirm your choices : YES/NO ? (default is YES)" + read confirm + if [ "$confirm" = "" ] + then + confirm=YES + fi + done + + # GROS SOUCIS : Ou generer le fichier CreaTools-configure.sh? # dans $generationdir/creatools_bin ? # -> il n'est pas encore cree ! # dans ./Linux/scripts? - # -> ? - -configureFile="scripts/CreaTools-configure.sh" -touch $configureFile -echo "#!/bin/sh" > $configureFile -echo >> $configureFile -echo "#File generated by 'menu.sh'" >> $configureFile -echo "#DO NOT edit !" >> $configureFile -echo "#(except if you *know* what you do)">> $configureFile -echo >> $configureFile -echo "OperatingSystem=$OperatingSystem" >> $configureFile -echo "generationdir=$generationdir" >> $configureFile -echo "installPrefix=$installPrefix" >> $configureFile -echo "docgeneration=$docgeneration" >> $configureFile -echo "sourcesFrom=$sourcesFrom" >> $configureFile -echo "cvsUserName=$cvsUserName" >> $configureFile -echo "loginUserName=$linuxUserName" >> $configureFile -echo "loginGroupName=$linuxGroupName" >> $configureFile -echo "buildType=$buildType" >> $configureFile -echo "gdcmVersion=$gdcmVersion" >> $configureFile + # ==> On le 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 "cvsUserName=$cvsUserName" >> $configureFile + echo "loginUserName=$loginUserName" >> $configureFile + echo "loginGroupName=$loginGroupName" >> $configureFile + echo "buildType=$buildType" >> $configureFile + echo "gdcmVersion=$gdcmVersion" >> $configureFile + # ------------------ -# endif 'suitable' -fi + # endif 'suitable' + fi ;; 1) - echo "========================== $i " - sh scripts/ThirdParty-install.sh - - vtkdirVariable="" - while [ "$vtkdirVariable" = "" ] - do - echo " Set VTK_DIR environment variable" - read vtkdirVariable - done - echo "you said [" $vtkdirVariable "]" - - #vtkdirVariable="" - #while [ "$vtkdirVariable" = "" ] - #do - # echo " Set VTK_DIR environment variable" - # read vtkdirVariable - #done - #echo "you said [" $vtkdirVariable "]" - - latexCompilerVariable="" - while [ "$latexCompilerVariable" = "" ] - do - echo " Set LATEX_COMPILER environment variable" - read latexCompilerVariable - done - echo "you said [" $latexCompilerVariable "]" + echo "========================== 1 " + source scripts/Check-if-root.sh + bash scripts/ThirdParty-install.sh - sed -i -e '/.*VTK_DIR*/ d' /etc/bashrc - sed -i -e '/.*LATEX_COMPILER*/ d' /etc/bashrc - echo "export VTK_DIR=$vtkdirVariable" >> /etc/bashrc - echo "export LATEX_COMPILER=$latexCompilerVariable" >> /etc/bashrc - - echo "------------------------------------" - echo OK - echo "To go on, run again 'sh menu.sh' as root, in a new window" - echo "------------------------------------" - exit 0 + if [ "$sourcesFrom" = "CVS" ] + 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 "==> You HAVE to leave current window to continue!" + read a + kill $PPID + ;; + + 1.1) + echo "========================== 1.1 " + source scripts/Check-if-root.sh + bash scripts/ThirdParty-install-gdcm.sh + ;; + + 1.2) + echo "========================== 1.2 " + echo "sorry, not yet available" + read a ;; + 1.3) + echo "========================== 1.3 " + echo "sorry, not yet available" + read a + + ;; + 2) - echo "========================== $i" - sh scripts/CreaTools-compile.sh + #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 "You HAVE to leave current window to continue!" + read a + kill $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 - chown -R $generationdir/creatools_source $linuxUserName - chgrp -R $generationdir/creatools_source $linuxGroupName - # Too much time consuming - #chown -R $generationdir/creatools_source $linuxUserName - #chgrp -R $generationdir/creatools_source $linuxGroupName + 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 + # Too much time consuming + #chown -R $loginUserName $generationdir/creatools_source + #chgrp -R $loginGroupName $generationdir/creatools_source + fi ;; - 3) - echo "========================= $i" - sh scripts/CreaTools-install.sh - ;; - - 4) - echo "========================= $i" - sh scripts/CreaTools-uninstall.sh + 2.3) + +# if [ $UID != 0 ] +# then +# echo +# echo "..ERROR.." +# echo "===================================================" +# echo "REMEMBER !" +# echo "" +# echo "YOU NEED TO RUN THIS ONE AS root" +# echo "===================================================" +# echo +# echo +# exit 0 +# fi + + 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 ;; - - 9) - echo exit + + + 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 "===================================" + 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 + ;; + *) - echo "Your answer must be in {0, 1, 2, 3, 4, 9} (was $i)" + + 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 -fi +