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