Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.framework / org.gvsig.andami / src / main / resources-application / gvSIG.sh @ 44832

History | View | Annotate | Download (18.4 KB)

1
#!/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
# - Careful with loop "while", changes in variables within the loop are
34
#   lost when you leave this.  Use "for" loops to avoid this.
35
# - busybox (win32) don't support typeset
36
#
37

    
38
#set -x
39
set -e
40

    
41
#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

    
51
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
UNAME=$(uname -m -o -s | tr '[:upper:]' '[:lower:]')
65
# Use -s to identify cygwin
66
case "$UNAME" in
67
*cygwin*)
68
    OS="win"
69
    ARG_D32=""
70
    CPSEP=";"
71
    CYGWIN="yes"
72
    CYGPATH="./cygpath.exe"
73
    CYGCHECK="./cygcheck.exe"
74
    # In developmen mode with cywin installed ?
75
    test -f "$CYGPATH" || CYGPATH=$(type -P cygpath)
76
    test -f "$CYGCHECK" || CYGCHECK=$(type -P cygcheck)
77
    ;;
78
*darwin*)
79
    OS="darwin"
80
    ARG_D32=""
81
    CPSEP=":"
82
    CYGWIN="no"
83
    ;;
84
*win*)
85
    OS="win"
86
    ARG_D32=""
87
    CPSEP=";"
88
    CYGWIN="no"
89
    CYGPATH="./cygpath -am"
90
    CYGCHECK="./cygcheck.exe"
91
    ;;
92
*lin*)
93
    OS="lin"
94
    # Only linux support -d32 arg
95
    ARG_D32="-d32"
96
    CPSEP=":"
97
    CYGWIN="no"
98
    ;;
99
*)
100
    OS="unknown"
101
    ARG_D32=""
102
    CPSEP=":"
103
    CYGWIN="no"
104
    ;;
105
esac
106

    
107
case "$UNAME" in
108
*x86_64*)
109
    ARCH="x86_64"
110
    ;;
111
*amd64*)
112
    ARCH="x86_64"
113
    ;;
114
*)
115
    ARCH="x86"
116
    ;;
117
esac
118

    
119

    
120
if [ "${OS}" == "win" ] ; then
121
  if [ "$CYGWIN" = "yes" ] ; then
122
    xmkdir() {
123
      if [ "$1" == "-p" ] ; then
124
        # La criatura falla si intentamos hacer algo como:
125
        #   mkdir c:/algo1/algo2
126
        #   mkdir /cygdrive/c/algo1/algo2
127
        # Lo primero nos aseguramos que el path esta en el formato
128
        # que esperamos, el de windows "C:/algo1/algo2"
129
        # luego hacemos un:
130
        #   cd /cygdrive/c
131
        # Y por ultimo un:
132
        #   mkdir -p algo1/algo2
133
        xmkdir_path=$($CYGPATH -am "$2")
134
        if [ "${xmkdir_path:1:2}" == ":/" ] ; then
135
          cd "/cygdrive/${xmkdir_path:0:1}"
136
          if mkdir -p "${xmkdir_path:3}" ; then
137
            cd - >/dev/null
138
          else
139
            cd - >/dev/null
140
            false
141
          fi
142
        else
143
          mkdir -p "$2"
144
        fi
145
      else
146
        mkdir "$1"
147
      fi
148
    }
149
  else
150
    xmkdir() {
151
      if [ "$1" == "-p" ] ; then
152
        # La criatura falla si intentamos hacer algo como:
153
        #   mkdir c:/algo1/algo2
154
        # Asi que primero hacemos un:
155
        #   cd c:/
156
        # Y luego un:
157
        #   mkdir -p algo1/algo2
158
        #
159
        if [ "${2:1:2}" == ":/" ] ; then
160
          cd "${2:0:3}"
161
          if mkdir -p "${2:3}" ; then
162
            cd - >/dev/null
163
          else
164
            cd - >/dev/null
165
            false
166
          fi
167
        else
168
          mkdir -p "$2"
169
        fi
170
      else
171
        mkdir "$1"
172
      fi
173
    }
174
  fi
175
else
176
  xmkdir() {
177
    mkdir $@
178
  }
179
fi
180

    
181

    
182
########################
183

    
184
getJavaArchitecture() {
185
	if [ "$ARCH" = "x86" ] ; then
186
                # Si la arquitectura del SO es x86 decimos
187
                # que la de java es x86
188
		echo "x86"
189
	else
190
                # si la arquitectura es x86_64, comprobamos
191
                # la arquitectura de la java que nos pasan
192
		if "$1" -version 2>&1 | egrep -i "64-Bit" >/dev/null ; then
193
			echo "x86_64"
194
		else
195
			echo "x86"
196
		fi
197
	fi
198
}
199

    
200
#################################
201
# Set install and home folders  #
202
#################################
203

    
204
# Go into the gvSIG installation folder, just in case
205
x=$(dirname "$0")
206
cd "$x"
207

    
208
if [ "$GVSIG_APPLICATION_NAME" = "" ] ; then
209
  GVSIG_APPLICATION_NAME=gvSIG
210
fi
211
export GVSIG_APPLICATION_NAME
212

    
213
# gvSIG installation and home folder
214
if [ "$CYGWIN" = "yes" ] ; then
215
  # gvSIG installation folder
216
  export GVSIG_INSTALL_FOLDER=$($CYGPATH -am "$PWD")
217
  # gvSIG home folder
218
  export HOME=$($CYGPATH -am "$USERPROFILE")
219
else
220
  # gvSIG installation folder
221
  export GVSIG_INSTALL_FOLDER="$PWD"
222
  # gvSIG home folder
223
  if [ "$OS" = "win" ] ; then
224
    # https://redmine.gvsig.net/redmine/issues/4033
225
    export HOME="$USERPROFILE"
226
  fi
227
fi
228
export GVSIG_HOME_FOLDER="$HOME/$GVSIG_APPLICATION_NAME"
229

    
230
####################
231
# Load config file #
232
####################
233

    
234
update_user_preferences() {
235
  if [ "$GVSIG_HOME_FOLDER" = "$GVSIG_INSTALL_FOLDER/preferences" ] ; then
236
    # It is a portable using the installation preferences folder as the user preferences folder.
237
    # We do not do anything.
238
    return
239
  fi
240
  if [ ! -d "$GVSIG_INSTALL_FOLDER/preferences" ] ; then
241
    # There is no installation preference folder. We do not do anything.
242
    return
243
  fi
244
  
245
  echo "Updating preferences in personal folder..."
246
  echo "This may take a moment."
247
  
248
  if [ ! -d "$GVSIG_HOME_FOLDER" ] ; then
249
    # There is no folder with the gvSIG preferences in the user's folder. 
250
    # We copy the preferences folder of the gvSIG installation.
251
    echo "Copying the default gvSIG preferences to the user's folder."
252
    xmkdir -p "$GVSIG_HOME_FOLDER"
253
    cp -a "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME" "$GVSIG_HOME_FOLDER/.."
254
    echo "Updating preferences finished."
255
    return
256
  fi
257
  # The user already has their preferences in their personal folder.
258
  # We check if we have to copy some preferences that do not have:
259
  # - Preferences of some plugin that does not have
260
  # - Missing symbols
261
  # - Scripts
262

    
263
  #
264
  # Check if some plugin preferences are missing, and copy them
265
  if [ -d  "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME/plugins" ] ; then
266
    cd "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME/plugins"
267
    for FOLDER in *
268
    do
269
      if [ -d "$FOLDER" -a ! -d "$GVSIG_HOME_FOLDER/plugins/$FOLDER" ] ; then
270
        echo "Copying the default $FOLDER preferences to the user's folder."
271
        xmkdir -p "$GVSIG_HOME_FOLDER/plugins/$FOLDER"
272
        cp -a "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME/plugins/$FOLDER" "$GVSIG_HOME_FOLDER/plugins"
273
      fi
274
    done
275
  fi
276
  
277
  #
278
  # Check if any symbols are missing and copy them
279
  if [ -d "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME/plugins/org.gvsig.app.mainplugin/Symbols" ] ; then
280
    cd "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME/plugins/org.gvsig.app.mainplugin/Symbols"
281
    for FOLDER in *
282
    do
283
      if [ -d "$FOLDER" -a ! -d "$GVSIG_HOME_FOLDER/plugins/org.gvsig.app.mainplugin/Symbols/$FOLDER" ] ; then
284
        echo "Copying the default $FOLDER symbol to the user's folder."
285
        xmkdir -p "$GVSIG_HOME_FOLDER/plugins/org.gvsig.app.mainplugin/Symbols/$FOLDER"
286
        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"
287
      fi
288
    done
289
  fi
290
  
291
  #
292
  # Check if any script are missing and copy them
293
  if [ -d  "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME/plugins/org.gvsig.scripting.app.mainplugin/scripts/addons" ] ; then
294
    cd "$GVSIG_INSTALL_FOLDER/preferences/$GVSIG_APPLICATION_NAME/plugins/org.gvsig.scripting.app.mainplugin/scripts/addons"
295
    for FOLDER in *
296
    do
297
      if [ -d "$FOLDER" -a ! -d "$GVSIG_HOME_FOLDER/plugins/org.gvsig.scripting.app.mainplugin/scripts/addons/$FOLDER" ] ; then
298
        echo "Copying the default $FOLDER script to the user's folder."
299
        xmkdir -p "$GVSIG_HOME_FOLDER/plugins/org.gvsig.scripting.app.mainplugin/scripts/addons/$FOLDER"
300
        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"
301
      fi
302
    done
303
  fi
304
  echo "Updating preferences finished."
305
}
306

    
307

    
308
if [ -f "$GVSIG_INSTALL_FOLDER/gvSIG.config" ] ; then
309
  . "$GVSIG_INSTALL_FOLDER/gvSIG.config"
310
fi
311
if [ -f "$GVSIG_HOME_FOLDER/gvSIG.config" ] ; then
312
  . "$GVSIG_HOME_FOLDER/gvSIG.config"
313
fi
314

    
315
update_user_preferences
316

    
317
if [ ! -d "$GVSIG_HOME_FOLDER" ] ; then
318
  xmkdir -p "$GVSIG_HOME_FOLDER"
319
fi
320

    
321
#################
322
# Logger config #
323
#################
324

    
325
LOGGER_FILE="$GVSIG_HOME_FOLDER/${GVSIG_APPLICATION_NAME}-launcher.log"
326
echo > "$LOGGER_FILE"
327

    
328

    
329
logger () {
330
  # level (INFO/WARNIG) message
331
  LOGGER_LEVEL="$1"
332
  shift
333
  echo "$LOGGER_LEVEL launch $@"
334
  echo "$LOGGER_LEVEL launch $@" >> "$LOGGER_FILE"
335
}
336

    
337
logger_info () {
338
  logger "INFO" "$@"
339
}
340

    
341
logger_warn () {
342
  logger "WARNING" "$@"
343
}
344

    
345
logger_cmd() {
346
  logger_info "$@"
347
  eval $@ 2>&1 | tee -a  "$LOGGER_FILE"
348
}
349

    
350
logger_info "gvSIG Installation folder: $GVSIG_INSTALL_FOLDER"
351
logger_info "gvSIG home folder: $GVSIG_HOME_FOLDER"
352

    
353
##########################################################
354
# Search in gvSIG/extensiones the architecture of plugins
355
# installeds and set as PREFERED_ARCHITECTURE
356
# Note: Busybox in windows don't support -exec in find
357
##########################################################
358

    
359
setPreferedArchitecture() {
360
  pf_foundArch=""
361
  pf_fname=""
362
  cd "$GVSIG_INSTALL_FOLDER"
363
  find . -name package.info 2>/dev/null | while read pf_fname
364
  do
365
    cat "$pf_fname"
366
  done | grep "architecture=[^a]" | sort | head -n 1 | read pf_foundArch || true
367
  # El comando "read x" de la linea anterior puede fallar si
368
  # no hay ningun plugin depdendiente de la arquitectura, por eso
369
  # el "|| true" del final.
370
  if [ "X${pf_foundArch}X" != "XX" ] ; then
371
	  eval $pf_foundArch
372
	  PREFERED_ARCHITECTURE="$architecture"
373
  else
374
	  PREFERED_ARCHITECTURE="$ARCH"
375
  fi
376
  cd - >/dev/null
377
}
378

    
379
setPreferedArchitecture
380

    
381
##########################################################
382

    
383
export JAVA_HOME
384
export JAVA
385
export FORCE_JAVA_32BITS
386

    
387
FORCE_JAVA_32BITS=""
388
JAVA_HOME_OTHER_ARCHITECTURE=""
389

    
390
# PRIVATE JAVA HOMEs
391
if [ -d "$GVSIG_INSTALL_FOLDER/gvSIG/extensiones/jre" ] ; then
392
    PJH1="$GVSIG_INSTALL_FOLDER/gvSIG/extensiones/jre"
393
else
394
    PJH1=
395
fi
396
#
397
# El ls|head casca en win10 64 bits. Parece que hay algun problema con los
398
# pipes y el find y el ls.
399
if [ "${OS}" == "win" ] ; then
400
  PJH2=""
401
  PJH3=""
402
  PJH4=""
403
  PJH5=""
404
else
405
  PJH2=$(ls -dt "$GVSIG_HOME_FOLDER/jre/"*1.8* 2>/dev/null | head -1)
406
  PJH3=$(ls -dt "$GVSIG_HOME_FOLDER/jre/"*1.7* 2>/dev/null | head -1)
407
  PJH4=$(ls -dt "$GVSIG_HOME_FOLDER/jre/"*1.6* 2>/dev/null | head -1)
408
  PJH5=$(ls -dt "$GVSIG_HOME_FOLDER/jre/"*1.5* 2>/dev/null | head -1)
409
fi
410
if [ -d /usr/lib/jvm ] ; then
411
    PJH6=$(find /usr/lib/jvm -maxdepth 1 ! -name "jvm" -name "[a-zA-Z]*" ! -type l -print)
412
else
413
    PJH6=
414
fi
415

    
416
if [ -f "$PJH1/bin/java" ] ; then
417
    if [ ! -x "$PJH1/bin/java" ] ; then
418
	chmod a+x "$PJH1/bin/java"
419
    fi
420
fi
421

    
422
#
423
#
424
# Try to use java from:
425
# 1. Java in gvSIG/extensiones/jre (jre plugin)
426
# 2. Java specified in JAVA_HOME variable
427
# 3. Java in the HOME/gvsig/jre folder (old gvsig versions optionally create during installation process)
428
# 4. Java installed in the system (/usr/lib/jvm)
429
# 5. Java in the system path.
430
#
431
for JAVA_HOME_TO_USE in "$PJH1" "$JAVA_HOME" "$PJH2" "$PJH3" "$PJH4" "$PJH5" $PJH6 ""
432
do
433
  if [ "$JAVA_HOME_TO_USE" = "" ] ; then
434
	  continue
435
  fi
436
  logger_info "Located possible jre at: ${JAVA_HOME_TO_USE}"
437
done
438

    
439
for JAVA_HOME_TO_USE in "$PJH1" "$JAVA_HOME" "$PJH2" "$PJH3" "$PJH4" "$PJH5" $PJH6 ""
440
do
441
        if [ "$JAVA_HOME_TO_USE" = "" ] ; then
442
                continue
443
        fi
444
	logger_info "Checking JAVA_HOME ${JAVA_HOME_TO_USE}..."
445
        if [ ! -d "$JAVA_HOME_TO_USE" ] ; then
446
                logger_warn "Folder not found ($JAVA_HOME_TO_USE), skip"
447
                continue
448
        fi
449
        if [ ! -x "$JAVA_HOME_TO_USE/bin/java" ] ; then
450
                logger_warn "Not a valid JAVA_HOME ($JAVA_HOME_TO_USE), bin/java not found, skip"
451
                continue
452
        fi
453
	JAVA_ARCH=$(getJavaArchitecture "$JAVA_HOME_TO_USE/bin/java")
454
	if [ "$JAVA_ARCH" != "$PREFERED_ARCHITECTURE" ] ; then
455
                JAVA_HOME_OTHER_ARCHITECTURE="$JAVA_HOME_TO_USE"
456
                logger_warn "Prefered architecture is $PREFERED_ARCHITECTURE, java $JAVA_ARCH found in $JAVA_HOME_TO_USE, skip"
457
                continue
458
        fi
459
        break
460
done
461

    
462
if [ "$JAVA_HOME_TO_USE" = "" ] ; then
463
        # Try to use the java in the system path
464
        if ! type java >/dev/null ; then
465
                # java not found in the system path
466
                if [ "$JAVA_HOME_OTHER_ARCHITECTURE" != "" ] ; then
467
                        JAVA_HOME="$JAVA_HOME_OTHER_ARCHITECTURE"
468
                        JAVA="$JAVA_HOME/bin/java"
469
                        logger_warn "java $PREFERED_ARCHITECTURE not found in the system path, using $JAVA_HOME_OTHER_ARCHITECTURE"
470
                else
471
                        logger_warn "java not found in the system"
472
                        exit 1
473
                fi
474
        else
475
		if [ "$(getJavaArchitecture $(type -p java))" != "$PREFERED_ARCHITECTURE" ] ; then
476
                      logger_warn "java $PREFERED_ARCHITECTURE not found, using $(type -p java)"
477
                fi
478
                unset JAVA_HOME
479
                JAVA="java"
480
        fi
481
else
482
        JAVA_HOME="$JAVA_HOME_TO_USE"
483
        JAVA="$JAVA_HOME/bin/java"
484
fi
485

    
486
if [ "$PREFERED_ARCHITECTURE" = "x86" ] ; then
487
	FORCE_JAVA_32BITS="$ARG_D32"
488
else
489
	FORCE_JAVA_32BITS=""
490

    
491
fi
492
logger_info "Using java " $(type -p "$JAVA")
493

    
494
###################################################################
495
# gvSIG native libraries location
496
###################################################################
497

    
498
export GVSIG_NATIVE_LIBS=""
499
export LD_LIBRARY_PATH
500
export DYLD_LIBRARY_PATH
501
export PATH
502
export GVSIG_PROPERTIES=""
503

    
504
add_library_path() {
505
  #logger_info "add_library_path $1"
506
  GVSIG_NATIVE_LIBS="$1${CPSEP}$GVSIG_NATIVE_LIBS"
507

    
508
  # On Linux family systems
509
  LD_LIBRARY_PATH="$1${CPSEP}$LD_LIBRARY_PATH"
510
  # On Darwin family systems
511
  DYLD_LIBRARY_PATH="$1${CPSEP}$DYLD_LIBRARY_PATH"
512
  # On Windows family systems
513
  if [ "$CYGWIN" = "yes" ] ; then
514
    PATH="/cygdrive/${1/:/}:$PATH"
515
  else
516
    PATH="$1${CPSEP}$PATH"
517
  fi
518

    
519
}
520

    
521
list_shared_library_dependencies() {
522
  logger_info "Checking shared library dependencies for $1"
523
  case "$OS" in
524
  "win")
525
        logger_cmd $CYGCHECK "\"$1\""
526
        ;;
527
  "lin")
528
        logger_cmd ldd "\"$1\""
529
        ;;
530
  "darwin")
531
        logger_cmd otool -L "\"$1\""
532
        ;;
533
  esac || logger_warn "Problens checking shared library $1"  || true
534
}
535

    
536
add_classpath() {
537
  GVSIG_CLASSPATH="$GVSIG_CLASSPATH${CPSEP}$1"
538
}
539

    
540
add_property() {
541
  value="\"$2\""
542
  GVSIG_PROPERTIES="$GVSIG_PROPERTIES -D$1=$value"
543
}
544

    
545

    
546
###################################################################
547
# gvSIG java libraries location
548
###################################################################
549

    
550
# Load gvSIG Andami jars and dependencies for the classpath
551
for i in "$GVSIG_INSTALL_FOLDER/lib/"*.jar ; do
552
  if [ "$i" != "$GVSIG_INSTALL_FOLDER/lib/*.jar" -a "$i" != "" ]; then
553
    add_classpath "$i"
554
  fi
555
done
556
for i in "$GVSIG_INSTALL_FOLDER/lib/"*.zip ; do
557
  if [ "$i" != "$GVSIG_INSTALL_FOLDER/lib/*.zip" -a "$i" != "" ]; then
558
    add_classpath "$i"
559
  fi
560
done
561

    
562
# gvSIG Andami launcher
563

    
564
if [ "$GVSIG_LAUNCHER" = "" ] ; then
565
  GVSIG_LAUNCHER=org.gvsig.andamiupdater.Updater
566
fi
567
if [ "$GVSIG_PARAMS" = "" ] ; then
568
  GVSIG_PARAMS="$GVSIG_APPLICATION_NAME gvSIG/extensiones $@"
569
fi
570

    
571
export GVSIG_LAUNCHER
572
export GVSIG_PARAMS
573

    
574
########################
575
# Memory configuration #
576
########################
577

    
578
# Initial gvSIG memory (M=Megabytes, G=Gigabytes)
579
export GVSIG_INITIAL_MEM=${GVSIG_INITIAL_MEM:-256M}
580
# Maximum gvSIG memory (M=Megabytes, G=Gigabytes)
581
export GVSIG_MAX_MEM=${GVSIG_MAX_MEM:-1024M}
582
# Maximum permanent memory size: needed to load classes and statics
583
# A partir de java 1.8 ya no esta soportada esta opcion
584
#export GVSIG_MAX_PERM_SIZE=${GVSIG_MAX_PERM_SIZE:-128M}
585
#  -XX:MaxPermSize=${GVSIG_MAX_PERM_SIZE} 
586
#
587

    
588

    
589
#############################
590
# Execute plugin's autorun  #
591
#############################
592

    
593
for PLUGIN_FOLDER in "$GVSIG_INSTALL_FOLDER/gvSIG/extensiones/"* "$GVSIG_HOME_FOLDER/installation/gvSIG/extensiones/"*
594
do
595
  if [ -f "$PLUGIN_FOLDER/autorun.sh" ] ; then
596
    logger_info "Running autorun from plugin " $(basename "$PLUGIN_FOLDER")
597
    . "$PLUGIN_FOLDER/autorun.sh"
598
    cd "$GVSIG_INSTALL_FOLDER"
599
  fi
600
done
601

    
602
if [ "$OS" = "win" ] ; then
603
	add_library_path "$GVSIG_INSTALL_FOLDER"
604
fi
605

    
606
logger_info "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
607
logger_info "PATH=$PATH"
608

    
609
#####################
610
# Java debug mode ? #
611
#####################
612

    
613
ARGS="$@" # Can't use ${@/ , use ${ARGS/ instead
614
if [ "${ARGS/*--pause*/--pause}" == "--pause" ] ; then
615
    DEBUG_PAUSE="y"
616
else
617
    DEBUG_PAUSE="n"
618
fi
619

    
620
if [ "${ARGS/*--debug*/--debug}" == "--debug" ] ; then
621
  DEBUG_OPTIONS="-agentlib:jdwp=transport=dt_socket,address=8765,server=y,suspend=$DEBUG_PAUSE"
622
else
623
  DEBUG_OPTIONS=""
624
fi
625

    
626
########################
627
# Remove old log files #
628
########################
629

    
630
rm -f "${GVSIG_HOME_FOLDER}/gvSIG.log"*
631

    
632
################
633
# Launch gvSIG #
634
################
635

    
636
launch_gvSIG() {
637
    # For Java parameters documentation and more parameters look at:
638
    # http://download.oracle.com/javase/6/docs/technotes/tools/windows/java.html
639
    # http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html
640
    CMD="\"${JAVA}\" \
641
      $GVSIG_CUSTOM_FONTS \
642
      $FORCE_JAVA_32BITS \
643
      -Xms${GVSIG_INITIAL_MEM} \
644
      -Xmx${GVSIG_MAX_MEM} \
645
      ${DEBUG_OPTIONS} \
646
      -Djava.library.path=\"${GVSIG_NATIVE_LIBS}\" \
647
      ${GVSIG_PROPERTIES} \
648
      -cp \"${GVSIG_CLASSPATH}\" \
649
      ${GVSIG_JAVA_PARAMS} \
650
      ${GVSIG_LAUNCHER} ${GVSIG_PARAMS}"
651

    
652
    logger_info Launching gvSIG: "${CMD}"
653
    eval "$CMD"
654
}
655

    
656
if [ "${ARGS/*--lib*/--lib}" != "--lib" ] ; then
657
    launch_gvSIG
658
fi
659