]> Creatis software - creaToolsTools.git/blob - Linux/menu.sh
05dd4545876c7c2cf3c75b668be201e6e8b5c89e
[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" ]
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            echo " Set VTK_DIR environment variable"
281            echo " --------------------------------"
282            echo         
283            read vtkdirVariable
284            if [  ! -e "$vtkdirVariable" ]
285            then
286               echo $vtkdirVariable is NOT a valid directory
287            fi
288         done
289      done
290      echo "you said [" $vtkdirVariable "]"
291
292      #vtkdirVariable=""
293      #while [ "$vtkdirVariable" = "" ]
294      #do
295      #   echo " Set VTK_DIR environment variable"
296       #  read vtkdirVariable
297      #done
298      #echo "you said [" $vtkdirVariable "]"
299           
300      latexCompilerVariable=""
301      while [ "$latexCompilerVariable" = "" ]
302      do
303         while [ ! -f "$latexCompilerVariable" ]
304         do 
305            echo
306            echo " ---------------------------------------"
307            echo " Set LATEX_COMPILER environment variable"
308            echo " ---------------------------------------"
309            echo         
310            read latexCompilerVariable
311            if [  ! -e "$latexCompilerVariable" ]
312            then
313               echo $latexCompilerVariable is NOT a valid file
314            fi
315         done
316      done
317      echo "you said [" $latexCompilerVariable "]"     
318
319      sed -i -e '/.*VTK_DIR*/ d'        /etc/bashrc
320      sed -i -e '/.*LATEX_COMPILER*/ d' /etc/bashrc 
321      echo "export VTK_DIR=$vtkdirVariable" >> /etc/bashrc
322      echo "export LATEX_COMPILER=$latexCompilerVariable" >> /etc/bashrc
323   
324      if [ $sourcesFrom = CVS ]
325      then
326         echo "----------------------------------------------------------------------"
327         echo OK
328         echo "To go on, run again 'sh menu.sh' as '$loginUserName', in a new window"
329         echo "---------------------------------------------------------------------"
330         exit 0
331      else
332         echo "----------------------------------------------------------------------"
333         echo OK
334         echo "To go on, run again 'sh menu.sh'  in a new window"
335         echo "---------------------------------------------------------------------"
336         exit 0    
337      fi
338      
339      echo "---------------------------------------------------------"
340      echo OK
341      echo "To go on, run again 'sh menu.sh' as root, in a new window"
342      echo "---------------------------------------------------------"
343      exit 0             
344   ;;
345
346   2)
347      echo "========================== 2" 
348      sh scripts/CreaTools-load.sh
349   ;;
350   
351   3)
352      echo "========================== 3"
353      source scripts/CreaTools-configure.sh
354      sh scripts/CreaTools-compile.sh
355      
356      # To allow (*very* aware) user to patch code, later
357   
358      chown -R $loginUserName $generationdir/creatools_source
359      chgrp -R $loginGroupName $generationdir/creatools_source
360      # Too much time consuming
361      #chown -R $loginUserName $generationdir/creatools_source 
362      #chgrp -R $loginGroupName $generationdir/creatools_source     
363   ;;
364   
365   4) 
366       if [ $UID != 0 ] 
367       then
368          echo
369          echo "..ERROR.."
370          echo "==================================================="
371          echo "REMEMBER !"
372          echo ""
373          echo "YOU NEED TO RUN THIS ONE AS root"
374          echo "==================================================="
375          echo
376          echo
377          exit 0
378 fi
379      echo "========================= 4"
380      sh scripts/CreaTools-install.sh     
381   ;;
382  
383   5)
384      echo "========================= 5"
385      sh scripts/CreaTools-uninstall.sh
386   ;;
387        
388   9) 
389   echo exit
390   ;;
391    
392   *)
393   echo "Your answer must be in {0, 1, 2, 3, 4, 5, 9} (was [ $i ])"
394   ;;
395   esac
396
397 done
398