]> Creatis software - creaToolsTools.git/blobdiff - Linux/menu.sh
*** empty log message ***
[creaToolsTools.git] / Linux / menu.sh
index 814f980252ebf21c63f4f4ce6c3d9a1a8215d84b..3be1b00a10aba6ac78eaef9493114df253ca1a27 100644 (file)
@@ -1,23 +1,15 @@
-#!/bin/sh
-
-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
+#!/bin/bash -e
 
+  if [ -f scripts/CreaTools-configure.sh ]
+  then
+     source scripts/CreaTools-configure.sh
+  fi
 
+expanded="NO"
 i=999
-while [ $i != 9 ]
+while [ "$i" != 9 ]
 do
+   clear
    echo
    echo
    echo
@@ -25,79 +17,168 @@ do
    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 " 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
-   echo " Exit :                          9"
-  echo
-  echo
-  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)
+  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"
+     suitable="NO"
   fi
-  if [ "$suitable" = "NO" ]
+  
+  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
+     
         OperatingSystem="XXX"
         while [[ "$OperatingSystem" != "Fedora" && \
                  "$OperatingSystem" != "Ubuntu" && \
                 "$OperatingSystem" != "MacOS" ]]
         do
-           echo "Operating System : Fedora/Ubuntu/MacOS (mandatory!)"
+           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 /tmp/myGenerationDir)"
+        echo "Name of the Generation Directory (default is ~/creaToolsGenerationDir)"
         read generationdir
         if [ "$generationdir" = "" ]
         then
-           generationdir="/tmp/myGenerationDir"
+           generationdir="~/creaToolsGenerationDir"
         fi
-        echo "you said : [" $generationdir "]"su
+        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="XXX"
-        echo "Install Prefix : '$generationdir/creatools_install' / '/usr/local' (default is '$generationdir/creatools_install')"
+        installPrefix="___"
+        echo "Install Prefix for CreaTools : '$generationdir/creatools_install' / '/usr/local' (default is '$generationdir/creatools_install')"
         read installPrefix
         if [ "$installPrefix" = "" ]
         then
@@ -108,29 +189,34 @@ do
         echo 
         # ------------------
 
-        docgeneration="XXX"
-        while [[ "$docgeneration" != "YES"  && "$docgeneration" != "NO" ]]
+if [ false ]
+then
+        docgeneration="___"
+        while [[ "$docgeneration" != "ON"  && "$docgeneration" != "OFF" ]]
         do
-           echo "Boolean For Doc Generation : YES/NO (default is NO)"
+           echo "Boolean For Doc Generation : ON/OFF (default is OFF)"
            read docgeneration
           if [ "$docgeneration" = "" ]
           then
-             docgeneration="NO"
+             docgeneration="OFF"
           fi
           echo "you said : [" $docgeneration "]"
         done
         echo
         echo
+fi
+docgeneration="OFF"
+
         # ------------------
 
-        sourcesFrom="XXX"
+        sourcesFrom="___"
         while [[ "$sourcesFrom" != "CVS"  && "$sourcesFrom" != "HTML" ]]
         do
-           echo "Where do you want to get source files from : CVS/HTML (default is HTML)"
+           echo "Where do you want to get source files from : CVS/HTML ( CVS : for registered CREATIS users only! )"
            read sourcesFrom
            if [ "$sourcesFrom" = "" ]
            then
-              sourcesFrom="HTML"
+              sourcesFrom="CVS"
            fi
            echo "you said : [" $sourcesFrom "]"
         done
@@ -143,7 +229,7 @@ do
         then
            while [ "$cvsUserName" == "" ]
            do
-              echo "CVS User Name (mandatory!)"
+              echo "CVS User Name ( registered CREATIS user : mandatory!)"
               read cvsUserName
            done
            echo "you said : [" $cvsUserName "]"
@@ -154,32 +240,34 @@ do
         echo
         # ------------------
 
-        linuxUserName=""
-        while [ "$linuxUserName" == "" ]
+
+        loginUserName=""
+        while [ "$loginUserName" == "" ]
         do 
            echo "Have a look at the following line to know 'Login User Name'/'Login Group Name'"
-           ls -l ~/.bashrc
+           ls -l menu.sh
            echo "Login User Name (mandatory!)"
-           read linuxUserName  
-           echo "you said : [" $linuxUserName "]"  
+           read loginUserName  
+           echo "you said : [" $loginUserName "]"  
         done
         echo
         echo
 
-        linuxGroupName=""
-        while [ "$linuxGroupName" == "" ]
+        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 linuxGroupName  
-           echo "you said : [" $linuxGroupName "]"  
+          echo "Login Group Name (mandatory!)"
+           read loginGroupName  
+           echo "you said : [" $loginGroupName "]"  
         done
         echo
         echo
         # ------------------
 
-        buildType="XXX"
-        while [[ "$buildType" != "Release"  && "$Debug " != "HTML" ]]
+        buildType="___"
+        while [[ "$buildType" != "Release"  && "$buildType" != "Debug" ]]
         do
            echo "Build type : Release/Debug (default is Release)"
            read buildType
@@ -193,7 +281,7 @@ do
         echo
         # ------------------
 
-        gdcmVersion="XXX"
+        gdcmVersion="___"
         while [[ "$gdcmVersion" != "GDCM1"  && "$gdcmVersion " != "GDCM2" ]]
         do
            echo "Gdcm version : GDCM1/GDCM2 (default is GDCM1)"
@@ -209,51 +297,60 @@ do
         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"
+        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"
+           echo "  CVS User Name                              : $cvsUserName"
         fi
-        echo "           Login User Name                            : $linuxUserName"
-        echo "           Login Group Name                           : $linuxGroupName"
-        echo "           Build type                                 : $buildType"          
-        echo "           Gdcm version                               : $gdcmVersion"
+        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 NO)"
+     
+        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?
- # -> ? 
+ # ==> On le genere chez l'utilisateur (no choice!)...
+ # 
 
    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
-
-         
+   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 
@@ -261,72 +358,224 @@ do
   
   1)
      echo "========================== 1 "
-     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 "]"     
+     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 "========================== 2"
-     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 "========================= 3"
-     sh scripts/CreaTools-install.sh     
-  ;;
-  4)
-     echo "========================= 4"
-     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