#!/bin/bash # Si se produce un error, salimos inmediatamente set -e # Obtenemos el locale LOC=`echo $LANG | sed 's/_.*//'` if [ $# -ne "2" ]; then if [ $LOC = "es" ] ; then echo "Uso: distribucion.sh version_antigua version_nueva" else echo "Usage: distribucion.sh old_version new_version" fi exit fi # Comprobar que estamos en el directorio adecuado if [ $LOC = "es" ] ; then ERROR_BASEDIR="Este script debe invocarse desde el directorio raiz del workspace o desde el directorio \'install\'" else ERROR_BASEDIR="This script must be run from the workspace\'s root directory or from the \'install\' directory" fi [ -d _fwAndami ] && [ -d install ] && cd install if [ ! -d instalador-gvSIG-lin ] || [ ! -d instalador-gvSIG-win ] || [ ! -d ../_fwAndami ] ; then echo $ERROR_BASEDIR exit 1 ; fi DIR_BASE=`pwd` #Directorios #OUTPUT_DIR=/mnt/sercartlin/grupo-sig-ca/Testing/Versiones OUTPUT_DIR=/tmp/Version PATH_SOURCE_EXT=../_fwAndami/gvSIG/extensiones PATH_SOURCE_MANDAT_EXT=../../../../../_fwAndami/gvSIG/extensiones DIR_LIN=instalador-gvSIG-lin DIR_WIN=instalador-gvSIG-win #JAVA_HOME=/usr/local/j2sdk1.4.2_03 # Version MAJOR=1 MINOR=0 MODIFIER='alpha' MODIFIER_='alpha_' BUILDNUMBER="$2" OLDBUILDNUMBER="$1" #Comentar estas 3 variables en caso de que no haya release #REL=1 #POINT=. #SEP=\_ #Extensiones de gvSIG #Para añadir una nueva extension al instalador incrementar EXT_N y agregar el nombre al vector EXTENSIONS # Esto lo necesitamos porque no queremos coger todas las extensiones que haya, solo las que elijamos EXT_N=10 EXTENSIONS=( com.iver.cit.gvsig.cad com.iver.cit.gvsig.jdbc_spatial com.iver.cit.gvsig.wcs com.iver.cit.gvsig.wfs2 com.iver.cit.gvsig.wms com.iver.gvsig.datalocator com.iver.gvsig.geoprocessing es.gva.cit.gvsig.catalogClient org.gvsig.georeferencing org.gvsig.rasterTools ) MEXT_N=3 MANDATORY_EXTENSIONS=( com.iver.cit.gvsig com.iver.core com.iver.gvsig.addeventtheme ) echo "*****************" echo " BASE " echo "*****************" # Para Windows echo -n "$DIR_BASE"/"$DIR_LIN" "-- " cd "$DIR_BASE"/"$DIR_LIN" rm bin -rf mkdir -p bin/gvSIG/extensiones cp gvSIG_installer/LEEME gvSIG_installer/LLIG-ME gvSIG_installer/README bin cp resources/gpl.txt bin # No enlazamos directamente el directorio lib para no incluir el directorio CVS mkdir -p bin/lib cd "$DIR_BASE"/"$DIR_LIN"/bin/lib for i in ../../../../_fwAndami/lib/*.jar ; do ln -s "$i" . done for i in ../../../../_fwAndami/lib/*.zip ; do ln -s "$i" . done cd "$DIR_BASE"/"$DIR_LIN" ln -s ../../../_fwAndami/andami.jar bin/ cp resources/andami-config.xml bin echo OK. # Para Linux echo -n "$DIR_BASE"/"$DIR_WIN" "-- " cd "$DIR_BASE"/"$DIR_WIN" rm bin -rf mkdir -p bin/gvSIG/extensiones cp gvSIG_installer/LEEME.txt gvSIG_installer/LLIG-ME.txt gvSIG_installer/README.txt bin cp resources/gpl.txt bin # No enlazamos directamente el directorio lib para no incluir el directorio CVS mkdir -p bin/lib cd "$DIR_BASE"/"$DIR_WIN"/bin/lib for i in ../../../../_fwAndami/lib/*.jar ; do ln -s "$i" . done for i in ../../../../_fwAndami/lib/*.zip ; do ln -s "$i" . done cd "$DIR_BASE"/"$DIR_WIN" ln -s ../../../_fwAndami/andami.jar bin cp resources/andami-config.xml bin echo OK. # Estas extensiones se copian directamente al directorio destino, ya que no vamos a dar # opcion a no instalarlas, son obligatorias cd $DIR_BASE i=0 while [ $i -lt $MEXT_N ] do ln -s "$PATH_SOURCE_MANDAT_EXT"/${MANDATORY_EXTENSIONS[$i]} "$DIR_LIN"/bin/gvSIG/extensiones ln -s "$PATH_SOURCE_MANDAT_EXT"/${MANDATORY_EXTENSIONS[$i]} "$DIR_WIN"/bin/gvSIG/extensiones i=`expr $i + 1` done echo "*****************" [ $LOC = "es" ] && echo " EXTENSIONES " [ $LOC != "es" ] && echo " EXTENSIONS " echo "*****************" rm -rf $DIR_LIN/extensiones mkdir $DIR_LIN/extensiones rm -rf $DIR_WIN/extensiones mkdir $DIR_WIN/extensiones i=0 while [ $i -lt $EXT_N ] do [ $LOC = "es" ] && echo "Copiando "${EXTENSIONS[$i]} [ $LOC != "es" ] && echo "Copying "${EXTENSIONS[$i]} cp "$PATH_SOURCE_EXT"/${EXTENSIONS[$i]} "$DIR_LIN"/extensiones -rf cp "$PATH_SOURCE_EXT"/${EXTENSIONS[$i]} "$DIR_WIN"/extensiones -rf i=`expr $i + 1` done echo "*****************" echo " INST-WIN " echo "*****************" # Generar el instalador (jar) para windows cd "$DIR_BASE"/"$DIR_WIN" ant echo "*****************" echo " INST-LIN " echo "*****************" # Generar el instalador (jar) para Linux echo $DIR_BASE/$PATHEXT cd "$DIR_BASE"/"$DIR_LIN" ant echo "******************" [ $LOC = "es" ] && echo " GENERAR DISTRIB " [ $LOC != "es" ] && echo " GENERATE DISTRIB " echo "******************" # Generar el tar.gz para Linux y el ZIP para Windows V=`echo $MAJOR.$MINOR$POINT$REL` V1=`echo $MAJOR$SEP$MINOR$SEP$REL` mkdir -p "$OUTPUT_DIR"/v$V\_"$MODIFIER_""$BUILDNUMBER" ### Para Linux cd "$DIR_BASE"/"$DIR_LIN" rm -Rf gvSIG\_$V\_installer cp -a gvSIG_installer gvSIG\_$V\_installer rm -R gvSIG\_$V\_installer/CVS mv gvSIG\_$V\_"$MODIFIER".jar gvSIG\_$V\_installer/ tar -czhvf gvSIG-$V1\_${MODIFIER_}${BUILDNUMBER}-linux-i586.tar.gz gvSIG_$V\_installer rm -Rf gvSIG\_$V\_installer cp gvSIG-$V1\_${MODIFIER_}${BUILDNUMBER}-linux-i586.tar.gz $OUTPUT_DIR/v$V\_${MODIFIER_}${BUILDNUMBER} echo " " ### Para Windows cd "$DIR_BASE"/"$DIR_WIN" rm -Rf gvSIG\_$V\_installer cp -a gvSIG_installer gvSIG\_$V\_installer rm -Rf gvSIG\_$V\_installer/CVS mv gvSIG_$V\_${MODIFIER}.jar gvSIG_$V\_installer/ zip -r gvSIG-$V1\_${MODIFIER_}${BUILDNUMBER}-windows-i586.zip gvSIG_$V\_installer rm -Rf gvSIG\_$V\_installer cp gvSIG-$V1\_${MODIFIER_}${BUILDNUMBER}-windows-i586.zip "$OUTPUT_DIR"/v$V\_${MODIFIER_}${BUILDNUMBER} if [ -d "$OUTPUT_DIR"/v$V\_"${MODIFIER_}""$OLDBUILDNUMBER"+/Por_comprobar ] ; then # Copiamos el directorio Por_comprobar de la versión anterior ls "$OUTPUT_DIR"/v$V\_"${MODIFIER_}""$OLDBUILDNUMBER"+/Por_comprobar cp "$OUTPUT_DIR"/v$V\_"${MODIFIER_}""$OLDBUILDNUMBER"+/Por_comprobar ../v$V\_"${MODIFIER_}""${BUILDNUMBER}" -rf ; else # Si no existe, avisamos de ello [ $LOC = "es" ] && echo Ojo: el build anterior especificado no existe: $OLDBUILDNUMBER ; [ $LOC != "es" ] && echo Warning: the specified previous build does not exist: $OLDBUILDNUMBER ; mkdir -p "$OUTPUT_DIR"/v$V\_"${MODIFIER_}""${BUILDNUMBER}"/Por_comprobar fi mkdir -p "$OUTPUT_DIR"/v$V\_"${MODIFIER_}""${BUILDNUMBER}"+/Por_comprobar