Statistics
| Revision:

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

History | View | Annotate | Download (18.1 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 HOME=$(./cygpath -am "$USERPROFILE")
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 HOME="$USERPROFILE"
219
  fi
220
fi
221
export GVSIG_HOME_FOLDER="$HOME/$GVSIG_APPLICATION_NAME"
222

    
223
####################
224
# Load config file #
225
####################
226

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

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

    
300

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

    
308
update_user_preferences
309

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

    
314
#################
315
# Logger config #
316
#################
317

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

    
321

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

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

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

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

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

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

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

    
372
setPreferedArchitecture
373

    
374
##########################################################
375

    
376
export JAVA_HOME
377
export JAVA
378
export FORCE_JAVA_32BITS
379

    
380
FORCE_JAVA_32BITS=""
381
JAVA_HOME_OTHER_ARCHITECTURE=""
382

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

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

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

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

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

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

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

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

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

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

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

    
512
}
513

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

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

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

    
538

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

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

    
555
# gvSIG Andami launcher
556

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

    
564
export GVSIG_LAUNCHER
565
export GVSIG_PARAMS
566

    
567
########################
568
# Memory configuration #
569
########################
570

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

    
581

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

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

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

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

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

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

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

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

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

    
625
################
626
# Launch gvSIG #
627
################
628

    
629
launch_gvSIG() {
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"
646
}
647

    
648
if [ "${ARGS/*--lib*/--lib}" != "--lib" ] ; then
649
    launch_gvSIG
650
fi
651