svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.framework / org.gvsig.andami / src / main / resources-application / gvSIG.sh @ 43297
History | View | Annotate | Download (16.5 KB)
1 | 42417 | jjdelcerro | #!/bin/bash |
---|---|---|---|
2 | # |
||
3 | # gvSIG. Desktop Geographic Information System. |
||
4 | # |
||
5 | # Copyright (C) 2007-2013 gvSIG Association. |
||
6 | # |
||
7 | # This program is free software; you can redistribute it and/or |
||
8 | # modify it under the terms of the GNU General Public License |
||
9 | # as published by the Free Software Foundation; either version 3 |
||
10 | # of the License, or (at your option) any later version. |
||
11 | # |
||
12 | # This program is distributed in the hope that it will be useful, |
||
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
||
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||
15 | # GNU General Public License for more details. |
||
16 | # |
||
17 | # You should have received a copy of the GNU General Public License |
||
18 | # along with this program; if not, write to the Free Software |
||
19 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
||
20 | # MA 02110-1301, USA. |
||
21 | # |
||
22 | # For any additional information, do not hesitate to contact us |
||
23 | # at info AT gvsig.com, or visit our website www.gvsig.com. |
||
24 | # |
||
25 | |||
26 | # gvSIG.sh |
||
27 | |||
28 | # |
||
29 | # Notes: |
||
30 | # - find command in busybox (win32) don't support "-exec" |
||
31 | # - trap command in busybox (win32) don't support "trap comando ERR" |
||
32 | # - busybox (win32) don't support statement "local" |
||
33 | 42658 | dmartinezizquierdo | # - Careful with loop "while", changes in variables within the loop are |
34 | 42627 | jjdelcerro | # lost when you leave this. Use "for" loops to avoid this. |
35 | 42717 | jjdelcerro | # - busybox (win32) don't support typeset |
36 | 42417 | jjdelcerro | # |
37 | |||
38 | #set -x |
||
39 | set -e |
||
40 | |||
41 | 43216 | jjdelcerro | #if [ "$BASH_VERSION" = "" ] ; then |
42 | # echo "gvSIG.sh is not running with a bash shell" |
||
43 | # if type bash 2>/dev/null ; then |
||
44 | # echo "Relaunch gvSIG.sh with a bash shell." |
||
45 | # exec bash $@ |
||
46 | # else |
||
47 | # echo "Can't locate a bash, continue the execution with current shell." |
||
48 | # fi |
||
49 | #fi |
||
50 | 43116 | jjdelcerro | |
51 | 42417 | jjdelcerro | onerror() { |
52 | set +x |
||
53 | echo "Error executing the command:" |
||
54 | echo ">>> $BASH_COMMAND <<<" |
||
55 | echo "At line $BASH_LINENO" |
||
56 | exit 1 |
||
57 | } |
||
58 | #trap onerror ERR |
||
59 | |||
60 | #################### |
||
61 | # Identify OS and Architecture # |
||
62 | #################### |
||
63 | |||
64 | 43263 | jjdelcerro | UNAME=$(uname -m -o -s | tr '[:upper:]' '[:lower:]') |
65 | # Use -s to identify cygwin |
||
66 | 42775 | jjdelcerro | case "$UNAME" in |
67 | 43263 | jjdelcerro | *cygwin*) |
68 | OS="win" |
||
69 | ARG_D32="" |
||
70 | CPSEP=";" |
||
71 | CYGWIN="yes" |
||
72 | ;; |
||
73 | 42775 | jjdelcerro | *darwin*) |
74 | 42936 | jjdelcerro | OS="darwin" |
75 | 42775 | jjdelcerro | ARG_D32="" |
76 | CPSEP=":" |
||
77 | 43263 | jjdelcerro | CYGWIN="no" |
78 | 42775 | jjdelcerro | ;; |
79 | *win*) |
||
80 | OS="win" |
||
81 | ARG_D32="" |
||
82 | CPSEP=";" |
||
83 | 43263 | jjdelcerro | CYGWIN="no" |
84 | 42775 | jjdelcerro | ;; |
85 | *lin*) |
||
86 | OS="lin" |
||
87 | # Only linux support -d32 arg |
||
88 | ARG_D32="-d32" |
||
89 | CPSEP=":" |
||
90 | 43263 | jjdelcerro | CYGWIN="no" |
91 | 42775 | jjdelcerro | ;; |
92 | *) |
||
93 | OS="unknown" |
||
94 | ARG_D32="" |
||
95 | CPSEP=":" |
||
96 | 43263 | jjdelcerro | CYGWIN="no" |
97 | 42775 | jjdelcerro | ;; |
98 | esac |
||
99 | 43263 | jjdelcerro | |
100 | 42775 | jjdelcerro | case "$UNAME" in |
101 | *x86_64*) |
||
102 | ARCH="x86_64" |
||
103 | ;; |
||
104 | *amd64*) |
||
105 | ARCH="x86_64" |
||
106 | ;; |
||
107 | *) |
||
108 | ARCH="x86" |
||
109 | ;; |
||
110 | esac |
||
111 | 42417 | jjdelcerro | |
112 | 42728 | jjdelcerro | if [ "${OS}" == "win" ] ; then |
113 | 42717 | jjdelcerro | xmkdir() { |
114 | if [ "$1" == "-p" ] ; then |
||
115 | if [ "${2:1:2}" == ":/" ] ; then |
||
116 | cd "${2:0:3}" |
||
117 | 42738 | jjdelcerro | if mkdir -p "${2:3}" ; then |
118 | 42717 | jjdelcerro | cd - >/dev/null |
119 | else |
||
120 | cd - >/dev/null |
||
121 | 42728 | jjdelcerro | false |
122 | 42717 | jjdelcerro | fi |
123 | else |
||
124 | mkdir -p "$2" |
||
125 | fi |
||
126 | else |
||
127 | mkdir "$1" |
||
128 | fi |
||
129 | } |
||
130 | else |
||
131 | xmkdir() { |
||
132 | if [ "$1" == "-p" ] ; then |
||
133 | mkdir -p "$2" |
||
134 | else |
||
135 | mkdir "$1" |
||
136 | fi |
||
137 | } |
||
138 | fi |
||
139 | |||
140 | 42417 | jjdelcerro | ######################## |
141 | |||
142 | getJavaArchitecture() { |
||
143 | if [ "$ARCH" = "x86" ] ; then |
||
144 | # Si la arquitectura del SO es x86 decimos |
||
145 | # que la de java es x86 |
||
146 | echo "x86" |
||
147 | else |
||
148 | # si la arquitectura es x86_64, comprobamos |
||
149 | # la arquitectura de la java que nos pasan |
||
150 | if "$1" -version 2>&1 | egrep -i "64-Bit" >/dev/null ; then |
||
151 | echo "x86_64" |
||
152 | else |
||
153 | echo "x86" |
||
154 | fi |
||
155 | fi |
||
156 | } |
||
157 | |||
158 | ################################# |
||
159 | # Set install and home folders # |
||
160 | ################################# |
||
161 | |||
162 | # Go into the gvSIG installation folder, just in case |
||
163 | x=$(dirname "$0") |
||
164 | cd "$x" |
||
165 | |||
166 | if [ "$GVSIG_APPLICATION_NAME" = "" ] ; then |
||
167 | GVSIG_APPLICATION_NAME=gvSIG |
||
168 | fi |
||
169 | export GVSIG_APPLICATION_NAME |
||
170 | |||
171 | 43263 | jjdelcerro | # gvSIG installation and home folder |
172 | if [ "$CYGWIN" = "yes" ] ; then |
||
173 | # gvSIG installation folder |
||
174 | export GVSIG_INSTALL_FOLDER=$(./cygpath -am "$PWD") |
||
175 | # gvSIG home folder |
||
176 | export GVSIG_HOME_FOLDER=$(./cygpath -am "$USERPROFILE/$GVSIG_APPLICATION_NAME") |
||
177 | 42648 | jjdelcerro | else |
178 | 43263 | jjdelcerro | # gvSIG installation folder |
179 | export GVSIG_INSTALL_FOLDER="$PWD" |
||
180 | # gvSIG home folder |
||
181 | if [ "$OS" = "win" ] ; then |
||
182 | # https://redmine.gvsig.net/redmine/issues/4033 |
||
183 | export GVSIG_HOME_FOLDER="$USERPROFILE/$GVSIG_APPLICATION_NAME" |
||
184 | else |
||
185 | export GVSIG_HOME_FOLDER="$HOME/$GVSIG_APPLICATION_NAME" |
||
186 | fi |
||
187 | 42648 | jjdelcerro | fi |
188 | 42417 | jjdelcerro | |
189 | #################### |
||
190 | # Load config file # |
||
191 | #################### |
||
192 | |||
193 | 43116 | jjdelcerro | update_user_preferences() { |
194 | if [ "$GVSIG_HOME_FOLDER" = "$GVSIG_INSTALL_FOLDER/preferences" ] ; then |
||
195 | # It is a portable using the installation preferences folder as the user preferences folder. |
||
196 | # We do not do anything. |
||
197 | return |
||
198 | fi |
||
199 | if [ ! -d "$GVSIG_INSTALL_FOLDER/preferences" ] ; then |
||
200 | # There is no installation preference folder. We do not do anything. |
||
201 | return |
||
202 | fi |
||
203 | |||
204 | echo "Updating preferences in personal folder..." |
||
205 | echo "This may take a moment." |
||
206 | |||
207 | if [ ! -d "$GVSIG_HOME_FOLDER" ] ; then |
||
208 | # There is no folder with the gvSIG preferences in the user's folder. |
||
209 | # We copy the preferences folder of the gvSIG installation. |
||
210 | echo "Copying the default gvSIG preferences to the user's folder." |
||
211 | xmkdir -p "$GVSIG_HOME_FOLDER" |
||
212 | cp -a "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME" "$GVSIG_HOME_FOLDER/.." |
||
213 | echo "Updating preferences finished." |
||
214 | return |
||
215 | fi |
||
216 | # The user already has their preferences in their personal folder. |
||
217 | # We check if we have to copy some preferences that do not have: |
||
218 | # - Preferences of some plugin that does not have |
||
219 | # - Missing symbols |
||
220 | # - Scripts |
||
221 | |||
222 | # |
||
223 | # Check if some plugin preferences are missing, and copy them |
||
224 | cd "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME/plugins" |
||
225 | for FOLDER in * |
||
226 | do |
||
227 | if [ -d "$FOLDER" -a ! -d "$GVSIG_HOME_FOLDER/plugins/$FOLDER" ] ; then |
||
228 | echo "Copying the default $FOLDER preferences to the user's folder." |
||
229 | xmkdir -p "$GVSIG_HOME_FOLDER/plugins/$FOLDER" |
||
230 | cp -a "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME/plugins/$FOLDER" "$GVSIG_HOME_FOLDER/plugins" |
||
231 | fi |
||
232 | done |
||
233 | |||
234 | # |
||
235 | # Check if any symbols are missing and copy them |
||
236 | cd "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME/plugins/org.gvsig.app.mainplugin/Symbols" |
||
237 | for FOLDER in * |
||
238 | do |
||
239 | if [ -d "$FOLDER" -a ! -d "$GVSIG_HOME_FOLDER/plugins/org.gvsig.app.mainplugin/Symbols/$FOLDER" ] ; then |
||
240 | echo "Copying the default $FOLDER symbol to the user's folder." |
||
241 | xmkdir -p "$GVSIG_HOME_FOLDER/plugins/org.gvsig.app.mainplugin/Symbols/$FOLDER" |
||
242 | cp -a "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME/plugins/org.gvsig.app.mainplugin/Symbols/$FOLDER" "$GVSIG_HOME_FOLDER/plugins/org.gvsig.app.mainplugin/Symbols" |
||
243 | fi |
||
244 | done |
||
245 | |||
246 | # |
||
247 | # Check if any script are missing and copy them |
||
248 | cd "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME/plugins/org.gvsig.scripting.app.mainplugin/scripts/addons" |
||
249 | for FOLDER in * |
||
250 | do |
||
251 | if [ -d "$FOLDER" -a ! -d "$GVSIG_HOME_FOLDER/plugins/org.gvsig.scripting.app.mainplugin/scripts/addons/$FOLDER" ] ; then |
||
252 | echo "Copying the default $FOLDER script to the user's folder." |
||
253 | xmkdir -p "$GVSIG_HOME_FOLDER/plugins/org.gvsig.scripting.app.mainplugin/scripts/addons/$FOLDER" |
||
254 | cp -a "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME/plugins/org.gvsig.scripting.app.mainplugin/scripts/addons/$FOLDER" "$GVSIG_HOME_FOLDER/plugins/org.gvsig.scripting.app.mainplugin/scripts/addons" |
||
255 | fi |
||
256 | done |
||
257 | |||
258 | echo "Updating preferences finished." |
||
259 | } |
||
260 | |||
261 | |||
262 | 42417 | jjdelcerro | if [ -f "$GVSIG_INSTALL_FOLDER/gvSIG.config" ] ; then |
263 | . "$GVSIG_INSTALL_FOLDER/gvSIG.config" |
||
264 | fi |
||
265 | 42663 | dmartinezizquierdo | if [ -f "$GVSIG_HOME_FOLDER/gvSIG.config" ] ; then |
266 | . "$GVSIG_HOME_FOLDER/gvSIG.config" |
||
267 | fi |
||
268 | 42417 | jjdelcerro | |
269 | 43116 | jjdelcerro | update_user_preferences |
270 | |||
271 | 42737 | jjdelcerro | if [ ! -d "$GVSIG_HOME_FOLDER" ] ; then |
272 | xmkdir -p "$GVSIG_HOME_FOLDER" |
||
273 | fi |
||
274 | |||
275 | 42417 | jjdelcerro | ################# |
276 | # Logger config # |
||
277 | ################# |
||
278 | |||
279 | LOGGER_FILE="$GVSIG_HOME_FOLDER/${GVSIG_APPLICATION_NAME}-launcher.log" |
||
280 | echo > "$LOGGER_FILE" |
||
281 | |||
282 | |||
283 | logger () { |
||
284 | # level (INFO/WARNIG) message |
||
285 | LOGGER_LEVEL="$1" |
||
286 | shift |
||
287 | echo "$LOGGER_LEVEL launch $@" |
||
288 | echo "$LOGGER_LEVEL launch $@" >> "$LOGGER_FILE" |
||
289 | } |
||
290 | |||
291 | logger_info () { |
||
292 | logger "INFO" "$@" |
||
293 | } |
||
294 | |||
295 | logger_warn () { |
||
296 | logger "WARNING" "$@" |
||
297 | } |
||
298 | |||
299 | logger_cmd() { |
||
300 | logger_info "$@" |
||
301 | 42423 | jjdelcerro | eval $@ 2>&1 | tee -a "$LOGGER_FILE" |
302 | 42417 | jjdelcerro | } |
303 | |||
304 | logger_info "gvSIG Installation folder: $GVSIG_INSTALL_FOLDER" |
||
305 | logger_info "gvSIG home folder: $GVSIG_HOME_FOLDER" |
||
306 | |||
307 | ########################################################## |
||
308 | # Search in gvSIG/extensiones the architecture of plugins |
||
309 | # installeds and set as PREFERED_ARCHITECTURE |
||
310 | 42852 | jjdelcerro | # Note: Busybox in windows don't support -exec in find |
311 | 42417 | jjdelcerro | ########################################################## |
312 | |||
313 | setPreferedArchitecture() { |
||
314 | pf_foundArch="" |
||
315 | pf_fname="" |
||
316 | cd "$GVSIG_INSTALL_FOLDER" |
||
317 | 43116 | jjdelcerro | find . -name package.info 2>/dev/null | while read pf_fname |
318 | 42417 | jjdelcerro | do |
319 | 42852 | jjdelcerro | cat "$pf_fname" |
320 | 42417 | jjdelcerro | done | grep "architecture=[^a]" | sort | head -n 1 | read pf_foundArch || true |
321 | 42423 | jjdelcerro | # El comando "read x" de la linea anterior puede fallar si |
322 | # no hay ningun plugin depdendiente de la arquitectura, por eso |
||
323 | 42417 | jjdelcerro | # el "|| true" del final. |
324 | if [ "X${pf_foundArch}X" != "XX" ] ; then |
||
325 | eval $pf_foundArch |
||
326 | PREFERED_ARCHITECTURE="$architecture" |
||
327 | else |
||
328 | PREFERED_ARCHITECTURE="$ARCH" |
||
329 | fi |
||
330 | cd - >/dev/null |
||
331 | } |
||
332 | |||
333 | setPreferedArchitecture |
||
334 | |||
335 | ########################################################## |
||
336 | |||
337 | export JAVA_HOME |
||
338 | export JAVA |
||
339 | export FORCE_JAVA_32BITS |
||
340 | |||
341 | FORCE_JAVA_32BITS="" |
||
342 | JAVA_HOME_OTHER_ARCHITECTURE="" |
||
343 | |||
344 | # PRIVATE JAVA HOMEs |
||
345 | 42794 | jjdelcerro | if [ -d "$GVSIG_INSTALL_FOLDER/gvSIG/extensiones/jre" ] ; then |
346 | 42852 | jjdelcerro | PJH1="$GVSIG_INSTALL_FOLDER/gvSIG/extensiones/jre" |
347 | 42926 | jjdelcerro | else |
348 | PJH1= |
||
349 | 42417 | jjdelcerro | fi |
350 | 42958 | jjdelcerro | # |
351 | # El ls|head casca en win10 64 bits. Parece que hay algun problema con los |
||
352 | # pipes y el find y el ls. |
||
353 | 42957 | jjdelcerro | if [ "${OS}" == "win" ] ; then |
354 | PJH2="" |
||
355 | PJH3="" |
||
356 | PJH4="" |
||
357 | PJH5="" |
||
358 | else |
||
359 | PJH2=$(ls -dt "$GVSIG_HOME_FOLDER/jre/"*1.8* 2>/dev/null | head -1) |
||
360 | PJH3=$(ls -dt "$GVSIG_HOME_FOLDER/jre/"*1.7* 2>/dev/null | head -1) |
||
361 | PJH4=$(ls -dt "$GVSIG_HOME_FOLDER/jre/"*1.6* 2>/dev/null | head -1) |
||
362 | PJH5=$(ls -dt "$GVSIG_HOME_FOLDER/jre/"*1.5* 2>/dev/null | head -1) |
||
363 | fi |
||
364 | 42417 | jjdelcerro | if [ -d /usr/lib/jvm ] ; then |
365 | PJH6=$(find /usr/lib/jvm -maxdepth 1 ! -name "jvm" -name "[a-zA-Z]*" ! -type l -print) |
||
366 | 42926 | jjdelcerro | else |
367 | PJH6= |
||
368 | 42417 | jjdelcerro | fi |
369 | |||
370 | 42926 | jjdelcerro | if [ -f "$PJH1/bin/java" ] ; then |
371 | if [ ! -x "$PJH1/bin/java" ] ; then |
||
372 | chmod a+x "$PJH1/bin/java" |
||
373 | fi |
||
374 | fi |
||
375 | |||
376 | 42417 | jjdelcerro | # |
377 | # |
||
378 | # Try to use java from: |
||
379 | 42927 | jjdelcerro | # 1. Java in gvSIG/extensiones/jre (jre plugin) |
380 | # 2. Java specified in JAVA_HOME variable |
||
381 | 42926 | jjdelcerro | # 3. Java in the HOME/gvsig/jre folder (old gvsig versions optionally create during installation process) |
382 | # 4. Java installed in the system (/usr/lib/jvm) |
||
383 | 42852 | jjdelcerro | # 5. Java in the system path. |
384 | 42417 | jjdelcerro | # |
385 | 42927 | jjdelcerro | for JAVA_HOME_TO_USE in "$PJH1" "$JAVA_HOME" "$PJH2" "$PJH3" "$PJH4" "$PJH5" $PJH6 "" |
386 | 42926 | jjdelcerro | do |
387 | if [ "$JAVA_HOME_TO_USE" = "" ] ; then |
||
388 | continue |
||
389 | fi |
||
390 | logger_info "Located possible jre at: ${JAVA_HOME_TO_USE}" |
||
391 | done |
||
392 | 42417 | jjdelcerro | |
393 | 43009 | jjdelcerro | for JAVA_HOME_TO_USE in "$PJH1" "$JAVA_HOME" "$PJH2" "$PJH3" "$PJH4" "$PJH5" $PJH6 "" |
394 | 42417 | jjdelcerro | do |
395 | if [ "$JAVA_HOME_TO_USE" = "" ] ; then |
||
396 | continue |
||
397 | fi |
||
398 | logger_info "Checking JAVA_HOME ${JAVA_HOME_TO_USE}..." |
||
399 | if [ ! -d "$JAVA_HOME_TO_USE" ] ; then |
||
400 | logger_warn "Folder not found ($JAVA_HOME_TO_USE), skip" |
||
401 | continue |
||
402 | fi |
||
403 | if [ ! -x "$JAVA_HOME_TO_USE/bin/java" ] ; then |
||
404 | logger_warn "Not a valid JAVA_HOME ($JAVA_HOME_TO_USE), bin/java not found, skip" |
||
405 | continue |
||
406 | fi |
||
407 | JAVA_ARCH=$(getJavaArchitecture "$JAVA_HOME_TO_USE/bin/java") |
||
408 | if [ "$JAVA_ARCH" != "$PREFERED_ARCHITECTURE" ] ; then |
||
409 | JAVA_HOME_OTHER_ARCHITECTURE="$JAVA_HOME_TO_USE" |
||
410 | logger_warn "Prefered architecture is $PREFERED_ARCHITECTURE, java $JAVA_ARCH found in $JAVA_HOME_TO_USE, skip" |
||
411 | continue |
||
412 | fi |
||
413 | break |
||
414 | done |
||
415 | |||
416 | if [ "$JAVA_HOME_TO_USE" = "" ] ; then |
||
417 | # Try to use the java in the system path |
||
418 | if ! type java >/dev/null ; then |
||
419 | # java not found in the system path |
||
420 | if [ "$JAVA_HOME_OTHER_ARCHITECTURE" != "" ] ; then |
||
421 | JAVA_HOME="$JAVA_HOME_OTHER_ARCHITECTURE" |
||
422 | JAVA="$JAVA_HOME/bin/java" |
||
423 | logger_warn "java $PREFERED_ARCHITECTURE not found in the system path, using $JAVA_HOME_OTHER_ARCHITECTURE" |
||
424 | else |
||
425 | logger_warn "java not found in the system" |
||
426 | exit 1 |
||
427 | fi |
||
428 | else |
||
429 | 42717 | jjdelcerro | if [ "$(getJavaArchitecture $(type -p java))" != "$PREFERED_ARCHITECTURE" ] ; then |
430 | logger_warn "java $PREFERED_ARCHITECTURE not found, using $(type -p java)" |
||
431 | 42417 | jjdelcerro | fi |
432 | unset JAVA_HOME |
||
433 | JAVA="java" |
||
434 | fi |
||
435 | else |
||
436 | JAVA_HOME="$JAVA_HOME_TO_USE" |
||
437 | JAVA="$JAVA_HOME/bin/java" |
||
438 | fi |
||
439 | |||
440 | if [ "$PREFERED_ARCHITECTURE" = "x86" ] ; then |
||
441 | FORCE_JAVA_32BITS="$ARG_D32" |
||
442 | else |
||
443 | FORCE_JAVA_32BITS="" |
||
444 | |||
445 | fi |
||
446 | 42717 | jjdelcerro | logger_info "Using java " $(type -p "$JAVA") |
447 | 42417 | jjdelcerro | |
448 | ################################################################### |
||
449 | # gvSIG native libraries location |
||
450 | ################################################################### |
||
451 | |||
452 | export GVSIG_NATIVE_LIBS="" |
||
453 | 42656 | jjdelcerro | export LD_LIBRARY_PATH |
454 | 42931 | jjdelcerro | export DYLD_LIBRARY_PATH |
455 | 42423 | jjdelcerro | export PATH |
456 | 42649 | jjdelcerro | export GVSIG_PROPERTIES="" |
457 | 42417 | jjdelcerro | |
458 | add_library_path() { |
||
459 | 42627 | jjdelcerro | #logger_info "add_library_path $1" |
460 | 42931 | jjdelcerro | GVSIG_NATIVE_LIBS="$1${CPSEP}$GVSIG_NATIVE_LIBS" |
461 | |||
462 | # On Linux family systems |
||
463 | 42675 | jjdelcerro | LD_LIBRARY_PATH="$1${CPSEP}$LD_LIBRARY_PATH" |
464 | 42931 | jjdelcerro | # On Darwin family systems |
465 | DYLD_LIBRARY_PATH="$1${CPSEP}$DYLD_LIBRARY_PATH" |
||
466 | # On Windows family systems |
||
467 | 43297 | jjdelcerro | if [ "$CYGWIN" = "yes" ] ; then |
468 | PATH="/cygdrive/${1/:/}:$PATH" |
||
469 | else |
||
470 | PATH="$1${CPSEP}$PATH" |
||
471 | fi |
||
472 | |||
473 | 42417 | jjdelcerro | } |
474 | |||
475 | list_shared_library_dependencies() { |
||
476 | 42667 | jjdelcerro | logger_info "Checking shared library dependencies for $1" |
477 | 42931 | jjdelcerro | case "$OS" in |
478 | "win") |
||
479 | 42695 | jjdelcerro | logger_cmd ./cygcheck.exe "\"$1\"" |
480 | 42931 | jjdelcerro | ;; |
481 | "lin") |
||
482 | 42695 | jjdelcerro | logger_cmd ldd "\"$1\"" |
483 | 42931 | jjdelcerro | ;; |
484 | "darwin") |
||
485 | logger_cmd otool -L "\"$1\"" |
||
486 | ;; |
||
487 | esac || logger_warn "Problens checking shared library $1" || true |
||
488 | 42417 | jjdelcerro | } |
489 | |||
490 | 42623 | jjdelcerro | add_classpath() { |
491 | GVSIG_CLASSPATH="$GVSIG_CLASSPATH${CPSEP}$1" |
||
492 | } |
||
493 | |||
494 | 42649 | jjdelcerro | add_property() { |
495 | 42666 | jjdelcerro | value="\"$2\"" |
496 | GVSIG_PROPERTIES="$GVSIG_PROPERTIES -D$1=$value" |
||
497 | 42649 | jjdelcerro | } |
498 | |||
499 | 42666 | jjdelcerro | |
500 | 42417 | jjdelcerro | ################################################################### |
501 | # gvSIG java libraries location |
||
502 | ################################################################### |
||
503 | |||
504 | # Load gvSIG Andami jars and dependencies for the classpath |
||
505 | for i in "$GVSIG_INSTALL_FOLDER/lib/"*.jar ; do |
||
506 | if [ "$i" != "$GVSIG_INSTALL_FOLDER/lib/*.jar" -a "$i" != "" ]; then |
||
507 | 42926 | jjdelcerro | add_classpath "$i" |
508 | 42417 | jjdelcerro | fi |
509 | done |
||
510 | for i in "$GVSIG_INSTALL_FOLDER/lib/"*.zip ; do |
||
511 | if [ "$i" != "$GVSIG_INSTALL_FOLDER/lib/*.zip" -a "$i" != "" ]; then |
||
512 | 42926 | jjdelcerro | add_classpath "$i" |
513 | 42417 | jjdelcerro | fi |
514 | done |
||
515 | |||
516 | # gvSIG Andami launcher |
||
517 | |||
518 | if [ "$GVSIG_LAUNCHER" = "" ] ; then |
||
519 | GVSIG_LAUNCHER=org.gvsig.andamiupdater.Updater |
||
520 | fi |
||
521 | if [ "$GVSIG_PARAMS" = "" ] ; then |
||
522 | GVSIG_PARAMS="$GVSIG_APPLICATION_NAME gvSIG/extensiones $@" |
||
523 | fi |
||
524 | |||
525 | export GVSIG_LAUNCHER |
||
526 | export GVSIG_PARAMS |
||
527 | |||
528 | ######################## |
||
529 | # Memory configuration # |
||
530 | ######################## |
||
531 | |||
532 | # Initial gvSIG memory (M=Megabytes, G=Gigabytes) |
||
533 | 42658 | dmartinezizquierdo | export GVSIG_INITIAL_MEM=${GVSIG_INITIAL_MEM:-256M} |
534 | 42417 | jjdelcerro | # Maximum gvSIG memory (M=Megabytes, G=Gigabytes) |
535 | 42658 | dmartinezizquierdo | export GVSIG_MAX_MEM=${GVSIG_MAX_MEM:-1024M} |
536 | 42417 | jjdelcerro | # Maximum permanent memory size: needed to load classes and statics |
537 | 43175 | jjdelcerro | # A partir de java 1.8 ya no esta soportada esta opcion |
538 | #export GVSIG_MAX_PERM_SIZE=${GVSIG_MAX_PERM_SIZE:-128M} |
||
539 | # -XX:MaxPermSize=${GVSIG_MAX_PERM_SIZE} |
||
540 | # |
||
541 | 42417 | jjdelcerro | |
542 | 43175 | jjdelcerro | |
543 | 42417 | jjdelcerro | ############################# |
544 | # Execute plugin's autorun # |
||
545 | ############################# |
||
546 | |||
547 | for PLUGIN_FOLDER in "$GVSIG_INSTALL_FOLDER/gvSIG/extensiones/"* |
||
548 | do |
||
549 | if [ -f "$PLUGIN_FOLDER/autorun.sh" ] ; then |
||
550 | logger_info "Running autorun from plugin " $(basename "$PLUGIN_FOLDER") |
||
551 | . "$PLUGIN_FOLDER/autorun.sh" |
||
552 | cd "$GVSIG_INSTALL_FOLDER" |
||
553 | fi |
||
554 | done |
||
555 | |||
556 | if [ "$OS" = "win" ] ; then |
||
557 | add_library_path "$GVSIG_INSTALL_FOLDER" |
||
558 | fi |
||
559 | |||
560 | logger_info "LD_LIBRARY_PATH=$LD_LIBRARY_PATH" |
||
561 | 43297 | jjdelcerro | logger_info "PATH=$PATH" |
562 | 42417 | jjdelcerro | |
563 | ##################### |
||
564 | # Java debug mode ? # |
||
565 | ##################### |
||
566 | |||
567 | 42717 | jjdelcerro | ARGS="$@" # Can't use ${@/ , use ${ARGS/ instead |
568 | if [ "${ARGS/*--pause*/--pause}" == "--pause" ] ; then |
||
569 | 42417 | jjdelcerro | DEBUG_PAUSE="y" |
570 | else |
||
571 | DEBUG_PAUSE="n" |
||
572 | fi |
||
573 | |||
574 | 42717 | jjdelcerro | if [ "${ARGS/*--debug*/--debug}" == "--debug" ] ; then |
575 | 42417 | jjdelcerro | DEBUG_OPTIONS="-agentlib:jdwp=transport=dt_socket,address=8765,server=y,suspend=$DEBUG_PAUSE" |
576 | else |
||
577 | DEBUG_OPTIONS="" |
||
578 | fi |
||
579 | |||
580 | 43175 | jjdelcerro | ######################## |
581 | # Remove old log files # |
||
582 | ######################## |
||
583 | |||
584 | rm -f "${GVSIG_HOME_FOLDER}/gvSIG.log"* |
||
585 | |||
586 | 42417 | jjdelcerro | ################ |
587 | # Launch gvSIG # |
||
588 | ################ |
||
589 | |||
590 | # For Java parameters documentation and more parameters look at: |
||
591 | # http://download.oracle.com/javase/6/docs/technotes/tools/windows/java.html |
||
592 | # http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html |
||
593 | 42666 | jjdelcerro | CMD="\"${JAVA}\" \ |
594 | $FORCE_JAVA_32BITS \ |
||
595 | -Xms${GVSIG_INITIAL_MEM} \ |
||
596 | -Xmx${GVSIG_MAX_MEM} \ |
||
597 | ${DEBUG_OPTIONS} \ |
||
598 | -Djava.library.path=\"${GVSIG_NATIVE_LIBS}\" \ |
||
599 | ${GVSIG_PROPERTIES} \ |
||
600 | -cp \"${GVSIG_CLASSPATH}\" \ |
||
601 | ${GVSIG_JAVA_PARAMS} \ |
||
602 | ${GVSIG_LAUNCHER} ${GVSIG_PARAMS}" |
||
603 | 42717 | jjdelcerro | |
604 | 42666 | jjdelcerro | logger_info Launching gvSIG: "${CMD}" |
605 | eval "$CMD" |