Statistics
| Revision:

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

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
      exit 1
142
    }
143
  else
144
    xmkdir() {
145
      if [ "$1" == "-p" ] ; then
146
        # La criatura falla si intentamos hacer algo como:
147
        #   mkdir c:/algo1/algo2
148
        # Asi que primero hacemos un:
149
        #   cd c:/
150
        # Y luego un:
151
        #   mkdir -p algo1/algo2
152
        #
153
        if [ "${2:1:2}" == ":/" ] ; then
154
          cd "${2:0:3}"
155
          if mkdir -p "${2:3}" ; then
156
            cd - >/dev/null
157
          else
158
            cd - >/dev/null
159
            false
160
          fi
161
        else
162
          mkdir -p "$2"
163
        fi
164
      else
165
        mkdir "$1"
166
      fi
167
    }
168
  fi
169
else
170
  xmkdir() {
171
    mkdir $@
172
  }
173
fi
174

    
175

    
176
########################
177

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

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

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

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

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

    
225
####################
226
# Load config file #
227
####################
228

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

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

    
302

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

    
310
update_user_preferences
311

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

    
316
#################
317
# Logger config #
318
#################
319

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

    
323

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

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

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

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

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

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

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

    
374
setPreferedArchitecture
375

    
376
##########################################################
377

    
378
export JAVA_HOME
379
export JAVA
380
export FORCE_JAVA_32BITS
381

    
382
FORCE_JAVA_32BITS=""
383
JAVA_HOME_OTHER_ARCHITECTURE=""
384

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

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

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

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

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

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

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

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

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

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

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

    
514
}
515

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

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

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

    
540

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

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

    
557
# gvSIG Andami launcher
558

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

    
566
export GVSIG_LAUNCHER
567
export GVSIG_PARAMS
568

    
569
########################
570
# Memory configuration #
571
########################
572

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

    
583

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

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

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

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

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

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

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

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

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

    
627
################
628
# Launch gvSIG #
629
################
630

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

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