Advertisement
Guest User

gvSIG-2.1-linux.sh

a guest
Sep 1st, 2014
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 10.31 KB | None | 0 0
  1. #!/bin/sh
  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. set -e
  29. #set -x
  30.  
  31. ####################
  32. # Identify OS and Architecture  #
  33. ####################
  34.  
  35. UNAME=$(uname -a)
  36. if echo "$UNAME" | grep -i "win" >/dev/null; then
  37.     OS="win"
  38.     ARG_D32=""
  39.         CPSEP=";"
  40. else
  41.     if echo "$UNAME" | grep -i "lin" >/dev/null ; then
  42.         OS="lin"
  43.         # Only linux support -d32 arg
  44.         ARG_D32="-d32"
  45.                 CPSEP=":"
  46.     else
  47.         OS="unknown"
  48.         ARG_D32=""
  49.                 CPSEP=":"
  50.     fi
  51. fi
  52. if echo "$UNAME" | egrep -i "(x86_64)|(amd64)" >/dev/null ; then
  53.     ARCH="x86_64"
  54. else
  55.     ARCH="x86"
  56. fi
  57.  
  58. ########################
  59.  
  60. getJavaArchitecture() {
  61.     if [ "$ARCH" = "x86" ] ; then
  62.                 # Si la arquitectura del SO es x86 decimos
  63.                 # que la de java es x86
  64.         echo "x86"
  65.     else
  66.                 # si la arquitectura es x86_64, comprobamos
  67.                 # la arquitectura de la java que nos pasan
  68.         if "$1" -version 2>&1 | egrep -i "64-Bit" >/dev/null ; then
  69.             echo "x86_64"
  70.         else
  71.             echo "x86"
  72.         fi
  73.     fi
  74. }
  75.  
  76. #################################
  77. # Set install and home folders  #
  78. #################################
  79.  
  80. # Go into the gvSIG installation folder, just in case
  81. cd "$(dirname $0)"
  82.  
  83. if [ "$GVSIG_APPLICATION_NAME" = "" ] ; then
  84.   GVSIG_APPLICATION_NAME=gvSIG
  85. fi
  86. export GVSIG_APPLICATION_NAME
  87.  
  88. # gvSIG installation folder
  89. export GVSIG_INSTALL_FOLDER="$PWD"
  90.  
  91. # gvSIG home folder
  92. export GVSIG_HOME_FOLDER="$HOME/$GVSIG_APPLICATION_NAME"
  93.  
  94. ####################
  95. # Load config file #
  96. ####################
  97.  
  98. if [ -f "$GVSIG_INSTALL_FOLDER/gvSIG.config" ] ; then
  99.   . "$GVSIG_INSTALL_FOLDER/gvSIG.config"
  100. fi
  101.  
  102. #################
  103. # Logger config #
  104. #################
  105.  
  106. LOGGER_FILE="$GVSIG_HOME_FOLDER/${GVSIG_APPLICATION_NAME}-launcher.log"
  107.  
  108. logger () {
  109.   # level (INFO/WARNIG) message
  110.   local LOGGER_LEVEL="$1"
  111.   shift
  112.   echo "$LOGGER_LEVEL launch $@"
  113.   if [ ! -f "$LOGGER_FILE" ] ; then
  114.     LOGGER_TEMP1=$(dirname "$LOGGER_FILE")
  115.     mkdir -p "$LOGGER_TEMP1"
  116.   fi
  117.   echo "$LOGGER_LEVEL launch $@" >> "$LOGGER_FILE"
  118. }
  119.  
  120. logger_info () {
  121.   logger "INFO" "$@"
  122. }
  123.  
  124. logger_warn () {
  125.   logger "WARNING" "$@"
  126. }
  127.  
  128. #########################
  129. # Locate whitch command #
  130. #########################
  131.  
  132. if type which >/dev/null; then
  133.         WHICH=which
  134. else
  135.         WHICH=type
  136. fi
  137.  
  138. logger_info "gvSIG Installation folder: $GVSIG_INSTALL_FOLDER"
  139. logger_info "gvSIG home folder: $GVSIG_HOME_FOLDER"
  140.  
  141. ##########################################################
  142. # Search in gvSIG/extensiones the architecture of plugins
  143. # installeds and set as PREFERED_ARCHITECTURE
  144. ##########################################################
  145.  
  146. x=$(find "$GVSIG_INSTALL_FOLDER/gvSIG/extensiones" -name package.info -exec grep "architecture=[^a]" {} ';' | sort|head -n 1)
  147. if [ "X${x}X" != "XX" ] ; then
  148.     eval $x
  149.     PREFERED_ARCHITECTURE="$architecture"
  150. else
  151.     PREFERED_ARCHITECTURE="$ARCH"
  152. fi
  153.  
  154. ##########################################################
  155.  
  156. FORCE_JAVA_32BITS=""
  157. JAVA_HOME_OTHER_ARCHITECTURE=""
  158.  
  159. # PRIVATE JAVA HOMEs
  160. PJH1=$(ls -dt "$GVSIG_HOME_FOLDER/jre/"*1.6* 2>/dev/null | head -1)
  161. PJH2=$(ls -dt "$GVSIG_HOME_FOLDER/jre/"*1.5* 2>/dev/null | head -1)
  162. PJH3=
  163. PJH4=
  164. PJH5=
  165. PJH6=
  166. if [ -d "$GVSIG_INSTALL_FOLDER/gvSIG/extensiones/jre_6_windows_i586/jre" ] ; then
  167. PJH5="$GVSIG_INSTALL_FOLDER/gvSIG/extensiones/jre_6_windows_i586/jre"
  168. fi
  169. if [ -d /usr/lib/jvm ] ; then
  170.     PJH6=$(find /usr/lib/jvm -maxdepth 1 ! -name "jvm" -name "[a-zA-Z]*" ! -type l -print)
  171. fi
  172.  
  173. #
  174. # in next line, JAVA_HOME is set during instalation process
  175. DEFAULT_JAVA_HOME="${JAVA_HOME}"
  176. #
  177. #
  178. # Try to use java from:
  179. # 1. Java specified in JAVA_HOME variable
  180. # 2. Java specified in the instalation process
  181. # 3. Java in the HOME/gvsig/jre folder (optionally created during installation process)
  182. # 4. Java in the system path.
  183. #
  184. export JAVA_HOME
  185. export JAVA
  186. export FORCE_JAVA_32BITS
  187.  
  188.  
  189. for JAVA_HOME_TO_USE in "$JAVA_HOME" "$DEFAULT_JAVA_HOME" "$PJH1" "$PJH2" "$PJH3" "$PJH4" "$PJH5" $PJH6 ""
  190. do
  191.         if [ "$JAVA_HOME_TO_USE" = "" ] ; then
  192.                 continue
  193.         fi
  194.     logger_info "Checking JAVA_HOME ${JAVA_HOME_TO_USE}..."
  195.         if [ ! -d "$JAVA_HOME_TO_USE" ] ; then
  196.                 logger_warn "Folder not found ($JAVA_HOME_TO_USE), skip"
  197.                 continue
  198.         fi
  199.         if [ ! -x "$JAVA_HOME_TO_USE/bin/java" ] ; then
  200.                 logger_warn "Not a valid JAVA_HOME ($JAVA_HOME_TO_USE), bin/java not found, skip"
  201.                 continue
  202.         fi
  203.     JAVA_ARCH="$(getJavaArchitecture $JAVA_HOME_TO_USE/bin/java)"
  204.     if [ "$JAVA_ARCH" != "$PREFERED_ARCHITECTURE" ] ; then
  205.                 JAVA_HOME_OTHER_ARCHITECTURE="$JAVA_HOME_TO_USE"
  206.                 logger_warn "Prefered architecture is $PREFERED_ARCHITECTURE, java $JAVA_ARCH found in $JAVA_HOME_TO_USE, skip"
  207.                 continue
  208.         fi
  209.         break
  210. done
  211.  
  212. if [ "$JAVA_HOME_TO_USE" = "" ] ; then
  213.         # Try to use the java in the system path
  214.         if ! type java >/dev/null ; then
  215.                 # java not found in the system path
  216.                 if [ "$JAVA_HOME_OTHER_ARCHITECTURE" != "" ] ; then
  217.                         JAVA_HOME="$JAVA_HOME_OTHER_ARCHITECTURE"
  218.                         JAVA="$JAVA_HOME/bin/java"
  219.                         logger_warn "java $PREFERED_ARCHITECTURE not found in the system path, using $JAVA_HOME_OTHER_ARCHITECTURE"
  220.                 else
  221.                         logger_warn "java not found in the system"
  222.                         exit 1
  223.                 fi
  224.         else
  225.         if [ "$(getJavaArchitecture $($WHICH java))" != "$PREFERED_ARCHITECTURE" ] ; then
  226.                       logger_warn "java $PREFERED_ARCHITECTURE not found, using $($WHICH java)"
  227.                 fi
  228.                 unset JAVA_HOME
  229.                 JAVA="java"
  230.         fi
  231. else
  232.         JAVA_HOME="$JAVA_HOME_TO_USE"
  233.         JAVA="$JAVA_HOME/bin/java"
  234. fi
  235.  
  236. if [ "$PREFERED_ARCHITECTURE" = "x86" ] ; then
  237.     FORCE_JAVA_32BITS="$ARG_D32"
  238. else
  239.     FORCE_JAVA_32BITS=""
  240.  
  241. fi
  242. logger_info "Using java " $($WHICH "$JAVA")
  243.  
  244. ###################################################################
  245. # Variables not depending (at least directly) on the installation #
  246. ###################################################################
  247.  
  248. # gvSIG native libraries location
  249. export GVSIG_NATIVE_LIBS="${GVSIG_INSTALL_FOLDER}/native:${HOME}/.depman/lib"
  250.  
  251. # Native libraries path
  252. export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$GVSIG_NATIVE_LIBS"
  253.  
  254. export LIBRARIES=""
  255. # Load gvSIG Andami jars and dependencies for the classpath
  256. for i in ./lib/*.jar ; do
  257.   if [ "$i" != "./lib/*.jar" -a "$i" != "" ]; then
  258.     LIBRARIES="${LIBRARIES}${CPSEP}${i}"
  259.   fi
  260. done
  261. for i in ./lib/*.zip ; do
  262.   if [ "$i" != "./lib/*.zip" -a "$i" != "" ]; then
  263.     LIBRARIES="${LIBRARIES}${CPSEP}${i}"
  264.   fi
  265. done
  266.  
  267. # echo Initial libraries found: ${LIBRARIES}
  268.  
  269. # gvSIG Andami launcher
  270.  
  271. if [ "$GVSIG_LAUNCHER" = "" ] ; then
  272.   GVSIG_LAUNCHER=org.gvsig.andamiupdater.Updater
  273. fi
  274. if [ "$GVSIG_PARAMS" = "" ] ; then
  275.   GVSIG_PARAMS="$GVSIG_APPLICATION_NAME gvSIG/extensiones $@"
  276. fi
  277.  
  278. export GVSIG_LAUNCHER
  279. export GVSIG_PARAMS
  280.  
  281. # gvSIG initial classpath
  282. export GVSIG_CLASSPATH="$LIBRARIES:$GVSIG_CLASSPATH"
  283.  
  284. ########################
  285. # Memory configuration #
  286. ########################
  287.  
  288. # Initial gvSIG memory (M=Megabytes, G=Gigabytes)
  289. export GVSIG_INITIAL_MEM=256M
  290. # Maximum gvSIG memory (M=Megabytes, G=Gigabytes)
  291. export GVSIG_MAX_MEM=1024M
  292. # Maximum permanent memory size: needed to load classes and statics
  293. export GVSIG_MAX_PERM_SIZE=96M
  294.  
  295.  
  296. #############################
  297. # Plugin specific variables #
  298. #############################
  299.  
  300. ### ecw provider
  301. export NCS_USER_PREFS="$HOME/.erm/ncsuserprefs.xml"
  302.  
  303. ### gdal provider
  304. # GDAL data files
  305. export GDAL_DATA="${GVSIG_INSTALL_FOLDER}/data/gdal"
  306.  
  307. #############################
  308. # Execute plugin's autorun  #
  309. #############################
  310.  
  311. for PLUGIN_FOLDER in "$GVSIG_INSTALL_FOLDER/gvSIG/extensiones/"*
  312. do
  313.   if [ -f "$PLUGIN_FOLDER/autorun.sh" ] ; then
  314.     logger_info "Running autorun from plugin " $(basename "$PLUGIN_FOLDER")
  315.     . "$PLUGIN_FOLDER/autorun.sh"
  316.   fi
  317. done
  318.  
  319. logger_info "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
  320.  
  321. #####################
  322. # Java debug mode ? #
  323. #####################
  324.  
  325. DEBUG_ARGS="X${@}X"
  326. if expr match "$DEBUG_ARGS" "X.*--pause.*X" >/dev/null; then          
  327.     DEBUG_PAUSE="y"
  328. else
  329.     DEBUG_PAUSE="n"
  330. fi
  331.  
  332. if expr match "$DEBUG_ARGS" "X.*--debug.*X" >/dev/null; then          
  333.   DEBUG_OPTIONS="-agentlib:jdwp=transport=dt_socket,address=8765,server=y,suspend=$DEBUG_PAUSE"
  334. else
  335.   DEBUG_OPTIONS=""
  336. fi
  337.  
  338. ################
  339. # Launch gvSIG #
  340. ################
  341.  
  342. # For Java parameters documentation and more parameters look at:
  343. # http://download.oracle.com/javase/6/docs/technotes/tools/windows/java.html
  344. # http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html
  345.  
  346. logger_info Launching gvSIG: ${JAVA} \
  347.     $FORCE_JAVA_32BITS \
  348.     -Xms${GVSIG_INITIAL_MEM} \
  349.     -Xmx${GVSIG_MAX_MEM} \
  350.     -XX:MaxPermSize=${GVSIG_MAX_PERM_SIZE} \
  351.         $DEBUG_OPTIONS \
  352.     -Djava.library.path=\"${GVSIG_NATIVE_LIBS}\":/usr/lib \
  353.     -cp $GVSIG_CLASSPATH \
  354.         $GVSIG_JAVA_PARAMS \
  355.     $GVSIG_LAUNCHER $GVSIG_PARAMS
  356.  
  357. eval ${JAVA} \
  358.     $FORCE_JAVA_32BITS \
  359.     -Xms${GVSIG_INITIAL_MEM} \
  360.     -Xmx${GVSIG_MAX_MEM} \
  361.     -XX:MaxPermSize=${GVSIG_MAX_PERM_SIZE} \
  362.         $DEBUG_OPTIONS \
  363.     -Djava.library.path=\"${GVSIG_NATIVE_LIBS}\":/usr/lib \
  364.     -cp $GVSIG_CLASSPATH \
  365.         $GVSIG_JAVA_PARAMS \
  366.     $GVSIG_LAUNCHER $GVSIG_PARAMS
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement