Statistics
| Revision:

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

History | View | Annotate | Download (18 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
    ;;
73
*darwin*)
74
    OS="darwin"
75
    ARG_D32=""
76
    CPSEP=":"
77
    CYGWIN="no"
78
    ;;
79
*win*)
80
    OS="win"
81
    ARG_D32=""
82
    CPSEP=";"
83
    CYGWIN="no"
84
    ;;
85
*lin*)
86
    OS="lin"
87
    # Only linux support -d32 arg
88
    ARG_D32="-d32"
89
    CPSEP=":"
90
    CYGWIN="no"
91
    ;;
92
*)
93
    OS="unknown"
94
    ARG_D32=""
95
    CPSEP=":"
96
    CYGWIN="no"
97
    ;;
98
esac
99

    
100
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

    
112

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

    
174

    
175
########################
176

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

    
193
#################################
194
# Set install and home folders  #
195
#################################
196

    
197
# Go into the gvSIG installation folder, just in case
198
x=$(dirname "$0")
199
cd "$x"
200

    
201
if [ "$GVSIG_APPLICATION_NAME" = "" ] ; then
202
  GVSIG_APPLICATION_NAME=gvSIG
203
fi
204
export GVSIG_APPLICATION_NAME
205

    
206
# gvSIG installation and home folder
207
if [ "$CYGWIN" = "yes" ] ; then
208
  # gvSIG installation folder
209
  export GVSIG_INSTALL_FOLDER=$(./cygpath -am "$PWD")
210
  # gvSIG home folder
211
  export GVSIG_HOME_FOLDER=$(./cygpath -am "$USERPROFILE/$GVSIG_APPLICATION_NAME")
212
else
213
  # gvSIG installation folder
214
  export GVSIG_INSTALL_FOLDER="$PWD"
215
  # gvSIG home folder
216
  if [ "$OS" = "win" ] ; then
217
    # https://redmine.gvsig.net/redmine/issues/4033
218
    export GVSIG_HOME_FOLDER="$USERPROFILE/$GVSIG_APPLICATION_NAME"
219
  else
220
    export GVSIG_HOME_FOLDER="$HOME/$GVSIG_APPLICATION_NAME"
221
  fi
222
fi
223

    
224
####################
225
# Load config file #
226
####################
227

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

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

    
301

    
302
if [ -f "$GVSIG_INSTALL_FOLDER/gvSIG.config" ] ; then
303
  . "$GVSIG_INSTALL_FOLDER/gvSIG.config"
304
fi
305
if [ -f "$GVSIG_HOME_FOLDER/gvSIG.config" ] ; then
306
  . "$GVSIG_HOME_FOLDER/gvSIG.config"
307
fi
308

    
309
update_user_preferences
310

    
311
if [ ! -d "$GVSIG_HOME_FOLDER" ] ; then
312
  xmkdir -p "$GVSIG_HOME_FOLDER"
313
fi
314

    
315
#################
316
# Logger config #
317
#################
318

    
319
LOGGER_FILE="$GVSIG_HOME_FOLDER/${GVSIG_APPLICATION_NAME}-launcher.log"
320
echo > "$LOGGER_FILE"
321

    
322

    
323
logger () {
324
  # level (INFO/WARNIG) message
325
  LOGGER_LEVEL="$1"
326
  shift
327
  echo "$LOGGER_LEVEL launch $@"
328
  echo "$LOGGER_LEVEL launch $@" >> "$LOGGER_FILE"
329
}
330

    
331
logger_info () {
332
  logger "INFO" "$@"
333
}
334

    
335
logger_warn () {
336
  logger "WARNING" "$@"
337
}
338

    
339
logger_cmd() {
340
  logger_info "$@"
341
  eval $@ 2>&1 | tee -a  "$LOGGER_FILE"
342
}
343

    
344
logger_info "gvSIG Installation folder: $GVSIG_INSTALL_FOLDER"
345
logger_info "gvSIG home folder: $GVSIG_HOME_FOLDER"
346

    
347
##########################################################
348
# Search in gvSIG/extensiones the architecture of plugins
349
# installeds and set as PREFERED_ARCHITECTURE
350
# Note: Busybox in windows don't support -exec in find
351
##########################################################
352

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

    
373
setPreferedArchitecture
374

    
375
##########################################################
376

    
377
export JAVA_HOME
378
export JAVA
379
export FORCE_JAVA_32BITS
380

    
381
FORCE_JAVA_32BITS=""
382
JAVA_HOME_OTHER_ARCHITECTURE=""
383

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

    
410
if [ -f "$PJH1/bin/java" ] ; then
411
    if [ ! -x "$PJH1/bin/java" ] ; then
412
	chmod a+x "$PJH1/bin/java"
413
    fi
414
fi
415

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

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

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

    
480
if [ "$PREFERED_ARCHITECTURE" = "x86" ] ; then
481
	FORCE_JAVA_32BITS="$ARG_D32"
482
else
483
	FORCE_JAVA_32BITS=""
484

    
485
fi
486
logger_info "Using java " $(type -p "$JAVA")
487

    
488
###################################################################
489
# gvSIG native libraries location
490
###################################################################
491

    
492
export GVSIG_NATIVE_LIBS=""
493
export LD_LIBRARY_PATH
494
export DYLD_LIBRARY_PATH
495
export PATH
496
export GVSIG_PROPERTIES=""
497

    
498
add_library_path() {
499
  #logger_info "add_library_path $1"
500
  GVSIG_NATIVE_LIBS="$1${CPSEP}$GVSIG_NATIVE_LIBS"
501

    
502
  # On Linux family systems
503
  LD_LIBRARY_PATH="$1${CPSEP}$LD_LIBRARY_PATH"
504
  # On Darwin family systems
505
  DYLD_LIBRARY_PATH="$1${CPSEP}$DYLD_LIBRARY_PATH"
506
  # On Windows family systems
507
  if [ "$CYGWIN" = "yes" ] ; then
508
    PATH="/cygdrive/${1/:/}:$PATH"
509
  else
510
    PATH="$1${CPSEP}$PATH"
511
  fi
512

    
513
}
514

    
515
list_shared_library_dependencies() {
516
  logger_info "Checking shared library dependencies for $1"
517
  case "$OS" in
518
  "win")
519
        logger_cmd ./cygcheck.exe "\"$1\""
520
        ;;
521
  "lin")
522
        logger_cmd ldd "\"$1\""
523
        ;;
524
  "darwin")
525
        logger_cmd otool -L "\"$1\""
526
        ;;
527
  esac || logger_warn "Problens checking shared library $1"  || true
528
}
529

    
530
add_classpath() {
531
  GVSIG_CLASSPATH="$GVSIG_CLASSPATH${CPSEP}$1"
532
}
533

    
534
add_property() {
535
  value="\"$2\""
536
  GVSIG_PROPERTIES="$GVSIG_PROPERTIES -D$1=$value"
537
}
538

    
539

    
540
###################################################################
541
# gvSIG java libraries location
542
###################################################################
543

    
544
# Load gvSIG Andami jars and dependencies for the classpath
545
for i in "$GVSIG_INSTALL_FOLDER/lib/"*.jar ; do
546
  if [ "$i" != "$GVSIG_INSTALL_FOLDER/lib/*.jar" -a "$i" != "" ]; then
547
    add_classpath "$i"
548
  fi
549
done
550
for i in "$GVSIG_INSTALL_FOLDER/lib/"*.zip ; do
551
  if [ "$i" != "$GVSIG_INSTALL_FOLDER/lib/*.zip" -a "$i" != "" ]; then
552
    add_classpath "$i"
553
  fi
554
done
555

    
556
# gvSIG Andami launcher
557

    
558
if [ "$GVSIG_LAUNCHER" = "" ] ; then
559
  GVSIG_LAUNCHER=org.gvsig.andamiupdater.Updater
560
fi
561
if [ "$GVSIG_PARAMS" = "" ] ; then
562
  GVSIG_PARAMS="$GVSIG_APPLICATION_NAME gvSIG/extensiones $@"
563
fi
564

    
565
export GVSIG_LAUNCHER
566
export GVSIG_PARAMS
567

    
568
########################
569
# Memory configuration #
570
########################
571

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

    
582

    
583
#############################
584
# Execute plugin's autorun  #
585
#############################
586

    
587
for PLUGIN_FOLDER in "$GVSIG_INSTALL_FOLDER/gvSIG/extensiones/"*
588
do
589
  if [ -f "$PLUGIN_FOLDER/autorun.sh" ] ; then
590
    logger_info "Running autorun from plugin " $(basename "$PLUGIN_FOLDER")
591
    . "$PLUGIN_FOLDER/autorun.sh"
592
    cd "$GVSIG_INSTALL_FOLDER"
593
  fi
594
done
595

    
596
if [ "$OS" = "win" ] ; then
597
	add_library_path "$GVSIG_INSTALL_FOLDER"
598
fi
599

    
600
logger_info "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
601
logger_info "PATH=$PATH"
602

    
603
#####################
604
# Java debug mode ? #
605
#####################
606

    
607
ARGS="$@" # Can't use ${@/ , use ${ARGS/ instead
608
if [ "${ARGS/*--pause*/--pause}" == "--pause" ] ; then
609
    DEBUG_PAUSE="y"
610
else
611
    DEBUG_PAUSE="n"
612
fi
613

    
614
if [ "${ARGS/*--debug*/--debug}" == "--debug" ] ; then
615
  DEBUG_OPTIONS="-agentlib:jdwp=transport=dt_socket,address=8765,server=y,suspend=$DEBUG_PAUSE"
616
else
617
  DEBUG_OPTIONS=""
618
fi
619

    
620
########################
621
# Remove old log files #
622
########################
623

    
624
rm -f "${GVSIG_HOME_FOLDER}/gvSIG.log"*
625

    
626
################
627
# Launch gvSIG #
628
################
629

    
630
# For Java parameters documentation and more parameters look at:
631
# http://download.oracle.com/javase/6/docs/technotes/tools/windows/java.html
632
# http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html
633
CMD="\"${JAVA}\" \
634
  $FORCE_JAVA_32BITS \
635
  -Xms${GVSIG_INITIAL_MEM} \
636
  -Xmx${GVSIG_MAX_MEM} \
637
  ${DEBUG_OPTIONS} \
638
  -Djava.library.path=\"${GVSIG_NATIVE_LIBS}\" \
639
  ${GVSIG_PROPERTIES} \
640
  -cp \"${GVSIG_CLASSPATH}\" \
641
  ${GVSIG_JAVA_PARAMS} \
642
  ${GVSIG_LAUNCHER} ${GVSIG_PARAMS}"
643

    
644
logger_info Launching gvSIG: "${CMD}"
645
eval "$CMD"