]> Creatis software - creaToolsTools.git/blob - Linux/menu.sh
852f94505bf0b2e28e84286afb67ef2f80046a67
[creaToolsTools.git] / Linux / menu.sh
1 #!/bin/bash -e
2
3
4 i=999
5 while [ "$i" != 9 ]
6 do
7    clear
8    echo
9    echo
10    echo
11    echo "                MENU"
12    echo
13    echo " Choose what you want to do :"
14    echo  
15    echo " Configure :..........................0 "
16    echo " Install Third Party Libraries :......1 (as root)"
17    echo " Get the 'CreaTools' source files :...2 (CVS : as user!)" 
18    echo " Compile   the CreaTools :............3 "
19    echo " Install   the CreaTools :............4 (as root)"
20    echo " Uninstall the CreaTools :............5 (as root)"
21    echo
22    echo " Exit :...............................9"
23   echo
24   echo
25   echo 
26
27   echo "Type in your choice :"
28   read i
29
30   case $i in
31   0)
32   suitable=XXX
33   #ls -l  scripts/CreaTools-configure.sh
34   if [ -f scripts/CreaTools-configure.sh ]
35   then
36      while [[ "$suitable" != "YES" && \
37               "$suitable" != "NO" ]]
38      do   
39         echo "'Configure' already done : "
40         echo "------------------------"
41         more scripts/CreaTools-configure.sh
42         echo "------------------------"
43         echo "Are the following values suitable for you : YES/NO? (default is YES)"
44         read suitable
45         if [ "$suitable" = "" ]
46         then
47            suitable="YES"
48         fi
49      done
50   else
51      suitable="NO"
52   fi
53   if [ "$suitable" = "YES" ]
54   then
55      source scripts/CreaTools-configure.sh
56   fi
57   
58   if [ "$suitable" = "NO" || "$suitable" = "N"  || "$suitable" = "no" || "$suitable" = "n" ]
59   then
60   
61   
62
63         
64         
65      echo
66      echo
67      confirm="NO"
68      while [ "$confirm" != "YES" ]
69      do
70      
71      
72         OperatingSystem="XXX"
73         while [[ "$OperatingSystem" != "Fedora" && \
74                  "$OperatingSystem" != "Ubuntu" && \
75
76                  "$OperatingSystem" != "MacOS" ]]
77         do
78            echo "Operating System : Fedora/Ubuntu/MacOS (default :Fedora!)"
79            read OperatingSystem
80            if [ "$OperatingSystem" = "" ]
81            then
82              OperatingSystem="Fedora"
83            fi  
84         done
85         echo "you said : [" $OperatingSystem "]"
86         echo
87         echo
88
89         # ------------------
90         echo "Name of the Generation Directory (default is /tmp/myGenerationDir)"
91         read generationdir
92         if [ "$generationdir" = "" ]
93         then
94            generationdir="/tmp/myGenerationDir"
95         fi
96         echo "you said : [" $generationdir "]"
97
98         echo
99         echo
100         # ------------------
101         installPrefixThird="___"
102         echo "Install Prefix For Third Party Library : '$generationdir/thirdparty_install' / '/usr/local' (default is '$generationdir/thirdparty_install')"
103         read installPrefixThird
104         if [ "$installPrefixThird" = "" ]
105         then
106            installPrefixThird="$generationdir/thirdparty_install"
107         fi
108         echo "you said : [" $installPrefixThird "]"
109         echo
110         echo 
111         # ------------------
112
113
114         installPrefix="___"
115         echo "Install Prefix for CreaTools : '$generationdir/creatools_install' / '/usr/local' (default is '$generationdir/creatools_install')"
116         read installPrefix
117         if [ "$installPrefix" = "" ]
118         then
119            installPrefix="$generationdir/creatools_install"
120         fi
121         echo "you said : [" $installPrefix "]"
122         echo
123         echo 
124         # ------------------
125
126         docgeneration="___"
127         while [[ "$docgeneration" != "YES"  && "$docgeneration" != "NO" ]]
128         do
129            echo "Boolean For Doc Generation : YES/NO (default is NO)"
130            read docgeneration
131           if [ "$docgeneration" = "" ]
132           then
133              docgeneration="NO"
134           fi
135           echo "you said : [" $docgeneration "]"
136         done
137         echo
138         echo
139         # ------------------
140
141         sourcesFrom="___"
142         while [[ "$sourcesFrom" != "CVS"  && "$sourcesFrom" != "HTML" ]]
143         do
144            echo "Where do you want to get source files from : CVS/HTML (default is CVS)"
145            read sourcesFrom
146            if [ "$sourcesFrom" = "" ]
147            then
148               sourcesFrom="CVS"
149            fi
150            echo "you said : [" $sourcesFrom "]"
151         done
152         echo
153         echo
154         # ------------------
155
156         cvsUserName=""
157         if [ "$sourcesFrom" = "CVS" ]
158         then
159            while [ "$cvsUserName" == "" ]
160            do
161               echo "CVS User Name (mandatory!)"
162               read cvsUserName
163            done
164            echo "you said : [" $cvsUserName "]"
165         else
166            cvsUserName="ForgetThisOne" 
167         fi
168         echo
169         echo
170         # ------------------
171
172
173         loginUserName=""
174         while [ "$loginUserName" == "" ]
175         do 
176            echo "Have a look at the following line to know 'Login User Name'/'Login Group Name'"
177            ls -l menu.sh
178            echo "Login User Name (mandatory!)"
179            read loginUserName  
180            echo "you said : [" $loginUserName "]"  
181         done
182         echo
183         echo
184
185         loginGroupName=""
186         while [ "$loginGroupName" == "" ]
187         do
188             #echo "Have a look at the following line to know 'Login User Name'/'Login Group Name'"
189             #echo "Login Group Name (mandatory!)"
190            echo "Login Group Name (mandatory!)"
191            read loginGroupName  
192            echo "you said : [" $loginGroupName "]"  
193         done
194         echo
195         echo
196         # ------------------
197
198         buildType="___"
199         while [[ "$buildType" != "Release"  && "$Debug " != "HTML" ]]
200         do
201            echo "Build type : Release/Debug (default is Release)"
202            read buildType
203            if [ "$buildType" = "" ]
204            then
205               buildType="Release"
206            fi
207            echo "you said : [" $buildType "]"
208         done
209         echo
210         echo
211         # ------------------
212
213         gdcmVersion="___"
214         while [[ "$gdcmVersion" != "GDCM1"  && "$gdcmVersion " != "GDCM2" ]]
215         do
216            echo "Gdcm version : GDCM1/GDCM2 (default is GDCM1)"
217            read gdcmVersion
218            if [ "$gdcmVersion" = "" ]
219            then
220               gdcmVersion="GDCM1"
221            fi
222            echo "you said : [" $gdcmVersion "]"
223         done
224         echo
225         echo
226         echo
227         echo
228         echo "You said :"
229         echo "  Operating System                           : $OperatingSystem"
230         echo "  Name of the Generation Directory           : $generationdir"
231         echo "  Install Prefix for Third Party Libraries   : $installPrefixThird"       
232         echo "  Install Prefix for CreaTools               : $installPrefix"
233         echo "  Boolean for Doc Generation                 : $docgeneration"
234         echo "  Where do you want to get source files from : $sourcesFrom"
235         if [ $sourcesFrom = CVS ]
236         then
237            echo " CVS User Name                              : $cvsUserName"
238         fi
239         echo "  Login User Name                            : $loginUserName"
240         echo "  Login Group Name                           : $loginGroupName"
241         echo "  Build type                                 : $buildType"          
242         echo "  Gdcm version                               : $gdcmVersion"
243         echo
244         echo
245         echo "Do you confirm your choices : YES/NO ? (default is YES)"
246         read confirm
247         if [ "$confirm" = "" ]
248         then
249            confirm=YES
250         fi
251    done
252
253  # GROS SOUCIS : Ou generer le fichier CreaTools-configure.sh?
254  # dans $generationdir/creatools_bin ?
255  # -> il n'est pas encore cree !
256  # dans ./Linux/scripts?
257  # -> ? 
258
259    configureFile="scripts/CreaTools-configure.sh"
260    touch  $configureFile
261    echo "#!/bin/sh"                              >  $configureFile
262    echo                                          >> $configureFile
263    echo "#File generated by 'menu.sh'"           >> $configureFile
264    echo "#DO NOT edit !"                         >> $configureFile
265    echo "#(except if you *know* what you do)"    >> $configureFile
266    echo                                          >> $configureFile
267    echo "OperatingSystem=$OperatingSystem"       >> $configureFile
268    echo "generationdir=$generationdir"           >> $configureFile
269    echo "installPrefix=$installPrefix"           >> $configureFile
270    echo "installPrefixThird=$installPrefixThird" >> $configureFile
271    echo "docgeneration=$docgeneration"           >> $configureFile
272    echo "sourcesFrom=$sourcesFrom"               >> $configureFile
273    echo "cvsUserName=$cvsUserName"               >> $configureFile 
274    echo "loginUserName=$loginUserName"           >> $configureFile
275    echo "loginGroupName=$loginGroupName"         >> $configureFile
276    echo "buildType=$buildType"                   >> $configureFile
277    echo "gdcmVersion=$gdcmVersion"               >> $configureFile
278
279   # ------------------      
280   # endif 'suitable'
281   fi 
282   ;;
283   
284   1)
285      echo "========================== 1 "
286      source scripts/Check-if-root.sh
287      sh scripts/ThirdParty-install.sh
288      
289 #      vtkdirVariable=""
290 #      while [ "$vtkdirVariable" = "" ]
291 #      do
292 #         while [ ! -e "$vtkdirVariable" ]
293 #         do
294 #            echo
295 #          echo " --------------------------------"
296 #            echo " Set VTK_DIR environment variable"
297 #          echo " --------------------------------"
298 #            echo               
299 # #            #read vtkdirVariable
300 #          if [  ! -e "$vtkdirVariable" ]
301 #          then
302 # #           echo $vtkdirVariable is NOT a valid directory
303 #          fi
304 #         done
305 #      done
306 #      echo "you said [" $vtkdirVariable "]"
307
308      #vtkdirVariable=""
309      #while [ "$vtkdirVariable" = "" ]
310      #do
311      #   echo " Set VTK_DIR environment variable"
312       #  read vtkdirVariable
313      #done
314      #echo "you said [" $vtkdirVariable "]"
315           
316 #      latexCompilerVariable=""
317 #      while [ "$latexCompilerVariable" = "" ]
318 #      do
319 #         while [ ! -f "$latexCompilerVariable" ]
320 #         do 
321 #          echo
322 # #        echo " ---------------------------------------"
323 #            echo " Set LATEX_COMPILER environment variable"
324 # #        echo " ---------------------------------------"
325 #            echo               
326 #            read latexCompilerVariable
327 #          if [  ! -e "$latexCompilerVariable" ]
328 #          then
329 #             echo $latexCompilerVariable is NOT a valid file
330 #          fi
331 # #     done
332 #      done
333 #      echo "you said [" $latexCompilerVariable "]"     
334
335 #     sed -i -e '/.*VTK_DIR*/ d'        /etc/bashrc
336 #     sed -i -e '/.*LATEX_COMPILER*/ d' /etc/bashrc 
337 #     echo "export VTK_DIR=$vtkdirVariable" >> /etc/bashrc
338 #     echo "export LATEX_COMPILER=$latexCompilerVariable" >> /etc/bashrc
339
340      if [ "$sourcesFrom" = "CVS" ]
341      then
342         echo "----------------------------------------------------------------------"
343         echo OK
344         echo "To go on, run again 'sh menu.sh' as '$loginUserName', in a new window"
345         echo "---------------------------------------------------------------------"
346         exit 0
347      else
348         echo "----------------------------------------------------------------------"
349         echo OK
350         echo "To go on, run again 'sh menu.sh'  in a new window"
351         echo "---------------------------------------------------------------------"
352         exit 0    
353      fi 
354        
355   ;;
356
357   2)
358     
359      
360      echo "========================== 2" 
361      sh scripts/CreaTools-load.sh
362   ;;
363   
364   3)
365      echo "========================== 3"
366      source scripts/CreaTools-configure.sh
367      sh scripts/CreaTools-compile.sh
368      
369      # To allow (*very* aware) user to patch code, later
370   
371      chown -R $loginUserName $generationdir/creatools_source
372      chgrp -R $loginGroupName $generationdir/creatools_source
373      # Too much time consuming
374      #chown -R $loginUserName $generationdir/creatools_source 
375      #chgrp -R $loginGroupName $generationdir/creatools_source     
376   ;;
377   
378   4) 
379       if [ $UID != 0 ] 
380       then
381          echo
382          echo "..ERROR.."
383          echo "==================================================="
384          echo "REMEMBER !"
385          echo ""
386          echo "YOU NEED TO RUN THIS ONE AS root"
387          echo "==================================================="
388          echo
389          echo
390          exit 0
391 fi
392      echo "========================= 4"
393      sh scripts/CreaTools-install.sh     
394   ;;
395  
396   5)
397      echo "========================= 5"
398      sh scripts/CreaTools-uninstall.sh
399   ;;
400        
401   9) 
402   echo exit
403   ;;
404    
405   *)
406   echo "Your answer must be in {0, 1, 2, 3, 4, 5, 9} (was [ $i ])"
407   ;;
408   esac
409
410 done
411