Statistics
| Revision:

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

History | View | Annotate | Download (18.8 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
ARGS="$@" # Can't use ${@/ , use ${ARGS/ instead
42

    
43
#if [ "$BASH_VERSION" = "" ] ; then
44
#    echo "gvSIG.sh is not running with a bash shell"
45
#    if type bash 2>/dev/null ; then
46
#        echo "Relaunch gvSIG.sh with a bash shell."
47
#        exec bash $@
48
#    else
49
#        echo "Can't locate a bash, continue the execution with current shell."
50
#    fi
51
#fi
52

    
53
onerror() {
54
  set +x
55
  echo "Error executing the command:"
56
  echo ">>> $BASH_COMMAND <<<"
57
  echo "At line $BASH_LINENO"
58
  exit 1
59
}
60
#trap onerror ERR
61

    
62
####################
63
# Identify OS and Architecture  #
64
####################
65

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

    
113
case "$UNAME" in
114
*x86_64*)
115
    ARCH="x86_64"
116
    ;;
117
*amd64*)
118
    ARCH="x86_64"
119
    ;;
120
*)
121
    ARCH="x86"
122
    ;;
123
esac
124

    
125

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

    
187

    
188
########################
189

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

    
206
#################################
207
# Set install and home folders  #
208
#################################
209

    
210
# Go into the gvSIG installation folder, just in case
211
x=$(dirname "$0")
212
cd "$x"
213

    
214
if [ "$GVSIG_APPLICATION_NAME" = "" ] ; then
215
  GVSIG_APPLICATION_NAME=gvSIG
216
fi
217
export GVSIG_APPLICATION_NAME
218

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

    
236
####################
237
# Load config file #
238
####################
239

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

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

    
313

    
314
if [ -f "$GVSIG_INSTALL_FOLDER/gvSIG.config" ] ; then
315
  . "$GVSIG_INSTALL_FOLDER/gvSIG.config"
316
fi
317
if [ -f "$GVSIG_HOME_FOLDER/gvSIG.config" ] ; then
318
  . "$GVSIG_HOME_FOLDER/gvSIG.config"
319
fi
320

    
321
update_user_preferences
322

    
323
if [ ! -d "$GVSIG_HOME_FOLDER" ] ; then
324
  xmkdir -p "$GVSIG_HOME_FOLDER"
325
fi
326

    
327
#################
328
# Logger config #
329
#################
330

    
331
LOGGER_FILE="$GVSIG_HOME_FOLDER/${GVSIG_APPLICATION_NAME}-launcher.log"
332
echo > "$LOGGER_FILE"
333

    
334
CONSOLELOGGER=true
335
if [ "${ARGS/*--consolelogger=false*/--consolelogger=false}" == "--consolelogger=false" ] ; then
336
    CONSOLELOGGER=false
337
fi
338

    
339
logger () {
340
  # level (INFO/WARNIG) message
341
  LOGGER_LEVEL="$1"
342
  shift
343
  if [ "$CONSOLELOGGER" == "true" ] ; then
344
    echo "$LOGGER_LEVEL launch $@"
345
  fi
346
  echo "$LOGGER_LEVEL launch $@" >> "$LOGGER_FILE"
347
}
348

    
349
logger_info () {
350
  logger "INFO" "$@"
351
}
352

    
353
logger_warn () {
354
  logger "WARNING" "$@"
355
}
356

    
357
logger_cmd() {
358
  logger_info "$@"
359
  if [ "$CONSOLELOGGER" == "true" ] ; then
360
    eval $@ 2>&1 | tee -a  "$LOGGER_FILE"
361
  else
362
    eval $@ 2>&1 > "$LOGGER_FILE"
363
  fi
364
}
365

    
366
logger_info "gvSIG Installation folder: $GVSIG_INSTALL_FOLDER"
367
logger_info "gvSIG home folder: $GVSIG_HOME_FOLDER"
368

    
369
##########################################################
370
# Search in gvSIG/extensiones the architecture of plugins
371
# installeds and set as PREFERED_ARCHITECTURE
372
# Note: Busybox in windows don't support -exec in find
373
##########################################################
374

    
375
setPreferedArchitecture() {
376
  pf_foundArch=""
377
  pf_fname=""
378
  cd "$GVSIG_INSTALL_FOLDER"
379
  find . -name package.info 2>/dev/null | while read pf_fname
380
  do
381
    cat "$pf_fname"
382
  done | grep "architecture=[^a]" | sort | head -n 1 | read pf_foundArch || true
383
  # El comando "read x" de la linea anterior puede fallar si
384
  # no hay ningun plugin depdendiente de la arquitectura, por eso
385
  # el "|| true" del final.
386
  if [ "X${pf_foundArch}X" != "XX" ] ; then
387
	  eval $pf_foundArch
388
	  PREFERED_ARCHITECTURE="$architecture"
389
  else
390
	  PREFERED_ARCHITECTURE="$ARCH"
391
  fi
392
  cd - >/dev/null
393
}
394

    
395
setPreferedArchitecture
396

    
397
##########################################################
398

    
399
export JAVA_HOME
400
export JAVA
401
export FORCE_JAVA_32BITS
402

    
403
FORCE_JAVA_32BITS=""
404
JAVA_HOME_OTHER_ARCHITECTURE=""
405

    
406
# PRIVATE JAVA HOMEs
407
if [ -d "$GVSIG_INSTALL_FOLDER/gvSIG/extensiones/jre" ] ; then
408
    PJH1="$GVSIG_INSTALL_FOLDER/gvSIG/extensiones/jre"
409
else
410
    PJH1=
411
fi
412
#
413
# El ls|head casca en win10 64 bits. Parece que hay algun problema con los
414
# pipes y el find y el ls.
415
if [ "${OS}" == "win" ] ; then
416
  PJH2=""
417
  PJH3=""
418
  PJH4=""
419
  PJH5=""
420
else
421
  PJH2=$(ls -dt "$GVSIG_HOME_FOLDER/jre/"*1.8* 2>/dev/null | head -1)
422
  PJH3=$(ls -dt "$GVSIG_HOME_FOLDER/jre/"*1.7* 2>/dev/null | head -1)
423
  PJH4=$(ls -dt "$GVSIG_HOME_FOLDER/jre/"*1.6* 2>/dev/null | head -1)
424
  PJH5=$(ls -dt "$GVSIG_HOME_FOLDER/jre/"*1.5* 2>/dev/null | head -1)
425
fi
426
if [ -d /usr/lib/jvm ] ; then
427
    PJH6=$(find /usr/lib/jvm -maxdepth 1 ! -name "jvm" -name "[a-zA-Z]*" ! -type l -print)
428
else
429
    PJH6=
430
fi
431

    
432
if [ -f "$PJH1/bin/java" ] ; then
433
    if [ ! -x "$PJH1/bin/java" ] ; then
434
	chmod a+x "$PJH1/bin/java"
435
    fi
436
fi
437

    
438
#
439
#
440
# Try to use java from:
441
# 1. Java in gvSIG/extensiones/jre (jre plugin)
442
# 2. Java specified in JAVA_HOME variable
443
# 3. Java in the HOME/gvsig/jre folder (old gvsig versions optionally create during installation process)
444
# 4. Java installed in the system (/usr/lib/jvm)
445
# 5. Java in the system path.
446
#
447
for JAVA_HOME_TO_USE in "$PJH1" "$JAVA_HOME" "$PJH2" "$PJH3" "$PJH4" "$PJH5" $PJH6 ""
448
do
449
  if [ "$JAVA_HOME_TO_USE" = "" ] ; then
450
	  continue
451
  fi
452
  logger_info "Located possible jre at: ${JAVA_HOME_TO_USE}"
453
done
454

    
455
for JAVA_HOME_TO_USE in "$PJH1" "$JAVA_HOME" "$PJH2" "$PJH3" "$PJH4" "$PJH5" $PJH6 ""
456
do
457
        if [ "$JAVA_HOME_TO_USE" = "" ] ; then
458
                continue
459
        fi
460
	logger_info "Checking JAVA_HOME ${JAVA_HOME_TO_USE}..."
461
        if [ ! -d "$JAVA_HOME_TO_USE" ] ; then
462
                logger_warn "Folder not found ($JAVA_HOME_TO_USE), skip"
463
                continue
464
        fi
465
        if [ ! -x "$JAVA_HOME_TO_USE/bin/java" ] ; then
466
                logger_warn "Not a valid JAVA_HOME ($JAVA_HOME_TO_USE), bin/java not found, skip"
467
                continue
468
        fi
469
	JAVA_ARCH=$(getJavaArchitecture "$JAVA_HOME_TO_USE/bin/java")
470
	if [ "$JAVA_ARCH" != "$PREFERED_ARCHITECTURE" ] ; then
471
                JAVA_HOME_OTHER_ARCHITECTURE="$JAVA_HOME_TO_USE"
472
                logger_warn "Prefered architecture is $PREFERED_ARCHITECTURE, java $JAVA_ARCH found in $JAVA_HOME_TO_USE, skip"
473
                continue
474
        fi
475
        break
476
done
477

    
478
if [ "$JAVA_HOME_TO_USE" = "" ] ; then
479
        # Try to use the java in the system path
480
        if ! type java >/dev/null ; then
481
                # java not found in the system path
482
                if [ "$JAVA_HOME_OTHER_ARCHITECTURE" != "" ] ; then
483
                        JAVA_HOME="$JAVA_HOME_OTHER_ARCHITECTURE"
484
                        JAVA="$JAVA_HOME/bin/java"
485
                        logger_warn "java $PREFERED_ARCHITECTURE not found in the system path, using $JAVA_HOME_OTHER_ARCHITECTURE"
486
                else
487
                        logger_warn "java not found in the system"
488
                        exit 1
489
                fi
490
        else
491
		if [ "$(getJavaArchitecture $(type -p java))" != "$PREFERED_ARCHITECTURE" ] ; then
492
                      logger_warn "java $PREFERED_ARCHITECTURE not found, using $(type -p java)"
493
                fi
494
                unset JAVA_HOME
495
                JAVA="java"
496
        fi
497
else
498
        JAVA_HOME="$JAVA_HOME_TO_USE"
499
        JAVA="$JAVA_HOME/bin/java"
500
fi
501

    
502
if [ "$PREFERED_ARCHITECTURE" = "x86" ] ; then
503
	FORCE_JAVA_32BITS="$ARG_D32"
504
else
505
	FORCE_JAVA_32BITS=""
506

    
507
fi
508
logger_info "Using java " $(type -p "$JAVA")
509

    
510
###################################################################
511
# gvSIG native libraries location
512
###################################################################
513

    
514
export GVSIG_NATIVE_LIBS=""
515
export LD_LIBRARY_PATH
516
export DYLD_LIBRARY_PATH
517
export PATH
518
export GVSIG_PROPERTIES=""
519

    
520
add_library_path() {
521
  #logger_info "add_library_path $1"
522
  GVSIG_NATIVE_LIBS="$1${CPSEP}$GVSIG_NATIVE_LIBS"
523

    
524
  # On Linux family systems
525
  LD_LIBRARY_PATH="$1${CPSEP}$LD_LIBRARY_PATH"
526
  # On Darwin family systems
527
  DYLD_LIBRARY_PATH="$1${CPSEP}$DYLD_LIBRARY_PATH"
528
  # On Windows family systems
529
  if [ "$CYGWIN" = "yes" ] ; then
530
    PATH="/cygdrive/${1/:/}:$PATH"
531
  else
532
    PATH="$1${CPSEP}$PATH"
533
  fi
534

    
535
}
536

    
537
list_shared_library_dependencies() {
538
  logger_info "Checking shared library dependencies for $1"
539
  case "$OS" in
540
  "win")
541
        logger_cmd "$CYGCHECK" "\"$1\""
542
        ;;
543
  "lin")
544
        logger_cmd ldd "\"$1\""
545
        ;;
546
  "darwin")
547
        logger_cmd otool -L "\"$1\""
548
        ;;
549
  esac || logger_warn "Problens checking shared library $1"  || true
550
}
551

    
552
add_classpath() {
553
  GVSIG_CLASSPATH="$GVSIG_CLASSPATH${CPSEP}$1"
554
}
555

    
556
add_property() {
557
  value="\"$2\""
558
  GVSIG_PROPERTIES="$GVSIG_PROPERTIES -D$1=$value"
559
}
560

    
561

    
562
###################################################################
563
# gvSIG java libraries location
564
###################################################################
565

    
566
# Load gvSIG Andami jars and dependencies for the classpath
567
for i in "$GVSIG_INSTALL_FOLDER/lib/"*.jar ; do
568
  if [ "$i" != "$GVSIG_INSTALL_FOLDER/lib/*.jar" -a "$i" != "" ]; then
569
    add_classpath "$i"
570
  fi
571
done
572
for i in "$GVSIG_INSTALL_FOLDER/lib/"*.zip ; do
573
  if [ "$i" != "$GVSIG_INSTALL_FOLDER/lib/*.zip" -a "$i" != "" ]; then
574
    add_classpath "$i"
575
  fi
576
done
577

    
578
# gvSIG Andami launcher
579

    
580
if [ "$GVSIG_LAUNCHER" = "" ] ; then
581
  GVSIG_LAUNCHER=org.gvsig.andamiupdater.Updater
582
fi
583
if [ "$GVSIG_PARAMS" = "" ] ; then
584
  GVSIG_PARAMS="$GVSIG_APPLICATION_NAME gvSIG/extensiones $@"
585
fi
586

    
587
export GVSIG_LAUNCHER
588
export GVSIG_PARAMS
589

    
590
########################
591
# Memory configuration #
592
########################
593

    
594
# Initial gvSIG memory (M=Megabytes, G=Gigabytes)
595
export GVSIG_INITIAL_MEM=${GVSIG_INITIAL_MEM:-256M}
596
# Maximum gvSIG memory (M=Megabytes, G=Gigabytes)
597
export GVSIG_MAX_MEM=${GVSIG_MAX_MEM:-1024M}
598
# Maximum permanent memory size: needed to load classes and statics
599
# A partir de java 1.8 ya no esta soportada esta opcion
600
#export GVSIG_MAX_PERM_SIZE=${GVSIG_MAX_PERM_SIZE:-128M}
601
#  -XX:MaxPermSize=${GVSIG_MAX_PERM_SIZE} 
602
#
603

    
604

    
605
#############################
606
# Execute plugin's autorun  #
607
#############################
608

    
609
for PLUGIN_FOLDER in "$GVSIG_INSTALL_FOLDER/gvSIG/extensiones/"* "$GVSIG_HOME_FOLDER/installation/gvSIG/extensiones/"*
610
do
611
  if [ -f "$PLUGIN_FOLDER/autorun.sh" ] ; then
612
    logger_info "Running autorun from plugin " $(basename "$PLUGIN_FOLDER")
613
    . "$PLUGIN_FOLDER/autorun.sh"
614
    cd "$GVSIG_INSTALL_FOLDER"
615
  fi
616
done
617

    
618
if [ "$OS" = "win" ] ; then
619
	add_library_path "$GVSIG_INSTALL_FOLDER"
620
fi
621

    
622
logger_info "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
623
logger_info "PATH=$PATH"
624

    
625
#####################
626
# Java debug mode ? #
627
#####################
628

    
629
if [ "${ARGS/*--pause*/--pause}" == "--pause" ] ; then
630
    DEBUG_PAUSE="y"
631
else
632
    DEBUG_PAUSE="n"
633
fi
634

    
635
if [ "${ARGS/*--debug*/--debug}" == "--debug" ] ; then
636
  DEBUG_OPTIONS="-agentlib:jdwp=transport=dt_socket,address=8765,server=y,suspend=$DEBUG_PAUSE"
637
else
638
  DEBUG_OPTIONS=""
639
fi
640

    
641
########################
642
# Remove old log files #
643
########################
644

    
645
rm -f "${GVSIG_HOME_FOLDER}/gvSIG.log"*
646

    
647
################
648
# Launch gvSIG #
649
################
650

    
651
launch_gvSIG() {
652
    cd "$GVSIG_INSTALL_FOLDER"
653
    # For Java parameters documentation and more parameters look at:
654
    # http://download.oracle.com/javase/6/docs/technotes/tools/windows/java.html
655
    # http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html
656
    CMD="\"${JAVA}\" \
657
      $GVSIG_CUSTOM_FONTS \
658
      $FORCE_JAVA_32BITS \
659
      -Xms${GVSIG_INITIAL_MEM} \
660
      -Xmx${GVSIG_MAX_MEM} \
661
      ${DEBUG_OPTIONS} \
662
      -Djava.library.path=\"${GVSIG_NATIVE_LIBS}\" \
663
      ${GVSIG_PROPERTIES} \
664
      -cp \"${GVSIG_CLASSPATH}\" \
665
      ${GVSIG_JAVA_PARAMS} \
666
      ${GVSIG_LAUNCHER} ${GVSIG_PARAMS}"
667

    
668
    logger_info Launching gvSIG: "${CMD}"
669
    eval "$CMD"
670
}
671

    
672
if [ "${ARGS/*--lib*/--lib}" != "--lib" ] ; then
673
    launch_gvSIG
674
fi
675