Revision 2086

View differences:

org.gvsig.raster/trunk/org.gvsig.raster/mvnraster
1
#/bin/sh
2

  
3
PLATFORM="linux"
4
COMPILER="gcc4"
5
ARCH="i386"
6
DISTRIBUTION="all"
7
TYPE="dynamic"
8
CLASSIFIER=$PLATFORM"-"$DISTRIBUTION"-"$COMPILER"-"$ARCH"-"$TYPE
9

  
10

  
11
if [ "$1" = "--help" ] ; then
12
   echo "Usage: First parameter:"
13
   echo "          -install: mvn install"
14
   echo "          -eclipse: mvn eclipse"
15
   echo "          -deploy: mvn deploy"
16
   echo "          -eclipseclean: mvn eclipse:clean"
17
   echo "          -clean: mvn clean"
18
   echo "          -changeversion [old_version] [new_version]: Utility to change the version of the parent pom" 
19
   echo "       Second parameter:"
20
   echo "          without second parameter only base projects"
21
   echo "          -core: Core projects \(cache, tilecache, gdal, tools\)"
22
   echo "          -all: all projects"
23
   echo "          -remote: remote services \(wms, wcs, wmts, osm, postgisraster\)"
24
   echo "          -projects: other plugins \(georeferencing, multifile, reprojection\)"
25
   echo "          -formats: other formats \(ecw, mrsid, netcdf, time support\)"
26
   echo "          -plugin: Only plugins \(tilecache, gdal, ecw, mrsid, tools, wms, wcs, wmts, postgisraster, osm, georeferencing, reprojection, multifile\)"
27
   exit
28
fi
29

  
30
ADDITIONAL_PARAMS="-Dnative-platform="$PLATFORM" 
31
	-Dnative-compiler="$COMPILER" 
32
	-Dnative-arch="$ARCH" 
33
	-Dnative-distribution="$DISTRIBUTION" 
34
	-Dlibrary-type="$TYPE"  
35
	-Dnative_classifier="$CLASSIFIER" 
36
	-Dnative-classifier="$CLASSIFIER" 
37
	-Dmaven.test.skip 
38
	-Dmaven.javadoc.skip=true 
39
	-Danimal.sniffer.skip=true 
40
	-Dlicense.skip=true install"
41

  
42
PARAMS_INSTALL="install "$ADDITIONAL_PARAMS
43
PARAMS_ECLIPSE="eclipse:eclipse "$ADDITIONAL_PARAMS
44
PARAMS_DEPLOY="deploy "$ADDITIONAL_PARAMS
45
PARAMS_CLEAN="clean"
46
PARAMS_ECLIPSECLEAN="eclipse:clean"
47

  
48
PATHS_CORE="org.gvsig.raster.cache 
49
	org.gvsig.raster 
50
	org.gvsig.raster.gdal 
51
	org.gvsig.raster.tilecache"
52
PATHS_REMOTE="org.gvsig.raster.wmts 
53
	org.gvsig.raster.wms 
54
	org.gvsig.raster.wcs 
55
	org.gvsig.raster.osm"
56
PATHS_OTHERS="org.gvsig.raster.tools
57
	org.gvsig.raster.georeferencing 
58
	org.gvsig.raster.reproject 
59
	org.gvsig.raster.multifile"
60
PATHS_FORMATS="org.gvsig.raster.ermapper 
61
	org.gvsig.raster.lizardtech 
62
	org.gvsig.raster.netcdf 
63
	org.gvsig.raster.postgis"
64
PATHS_PLUGINS="org.gvsig.raster.ermapper/org.gvsig.raster.ermapper.app 
65
	org.gvsig.raster.lizardtech/org.gvsig.raster.lizardtech.app 
66
	org.gvsig.raster.netcdf/org.gvsig.raster.netcdf.app.netcdfclient 
67
	org.gvsig.raster.postgis/org.gvsig.raster.postgis.app.postgisrasterclient
68
	org.gvsig.raster.gdal/org.gvsig.raster.gdal.app
69
	org.gvsig.raster.tilecache/org.gvsig.raster.tilecache.app
70
	org.gvsig.raster.tools/org.gvsig.raster.tools.app.basic
71
	org.gvsig.raster.osm/org.gvsig.raster.osm.app.osmclient
72
	org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.app.georeferencingclient
73
	org.gvsig.raster.reproject/org.gvsig.raster.reproject.app.reprojectclient
74
	org.gvsig.raster.multifile/org.gvsig.raster.multifile.app.multifileclient
75
	org.gvsig.raster.wms/org.gvsig.raster.wms.app.wmsclient
76
	org.gvsig.raster.wmts/org.gvsig.raster.wms.app.wmtsclient
77
	org.gvsig.raster.wcs/org.gvsig.raster.wcs.app.wcsclient"
78

  
79
if [ "$1" = "-changeversion" ] ; then
80
    CURRENT_DIR=`pwd`
81
	for i in `ls`
82
	do
83
		if [ "$i" = "org.gvsig."* ] ; then
84
		  cd $i
85
		  (cat pom.xml | sed -e "s/$2/$3/") > tmp
86
		  rm pom.xml
87
          mv tmp pom.xml
88
		  cd $CURRENT_DIR
89
		fi
90
	done
91
	exit;
92
fi
93

  
94
if [ "$2" = "-core" ] ; then
95
   PATHS=$PATHS_CORE;
96
fi
97

  
98
if [ "$2" = "-projects" ] ; then
99
   PATHS=$PATHS_OTHERS;
100
fi
101

  
102
if [ "$2" = "-remote" ] ; then
103
   PATHS=$PATHS_REMOTE;
104
fi
105

  
106
if [ "$2" = "-formats" ] ; then
107
   PATHS=$PATHS_FORMATS;
108
fi
109

  
110
if [ "$2" = "-all" ] ; then
111
   PATHS=$PATHS_CORE" "$PATHS_FORMATS" "$PATHS_REMOTE" "$PATHS_OTHERS;
112
fi
113

  
114
if [ "$2" = "-plugin" ] ; then
115
   PATHS=$PATHS_PLUGIN;
116
fi
117

  
118
echo "***********************************"
119
echo "Command: mvn "$1
120
echo "Projects: "$PATHS
121
echo "***********************************"
122

  
123

  
124
for i in $PATHS 
125
do
126
 #echo "$i"
127
 cd $i
128

  
129
  if  [ "$1" = "-install" ] ; then
130
	mvn $PARAMS_INSTALL;
131
  else
132
    if  [ "$1" = "-eclipse" ] ; then
133
      mvn $PARAMS_ECLIPSE;
134
    else
135
      if  [ "$1" = "-deploy" ] ; then
136
	 mvn $PARAMS_DEPLOY;
137
      else
138
        if  [ "$1" = "-clean" ] ; then
139
	  mvn $PARAMS_CLEAN;
140
        else
141
          if  [ "$1" = "-eclipseclean" ] ; then
142
	    mvn $PARAMS_ECLIPSECLEAN;
143
          fi
144
        fi
145
      fi
146
    fi
147
  fi
148

  
149
 cd ..
150
 
151
 if [ "$2" = "-plugin" ] ; then
152
   cd ..
153
 fi
154
done
155

  
156

  
org.gvsig.raster/trunk/org.gvsig.raster/package.sh
1
#/bin/sh
2

  
3
#----------------------
4
#Configuration section
5
#----------------------
6

  
7
GVSIG_VERSION=2.1.0
8
FIX_VERSION=SNAPSHOT
9
RELEASE=testing
10
PACKAGE_PREFIX=gvSIG-desktop
11
LIB_PKG=depman.tgz
12

  
13
PACKAGE_DIRECTORY=/tmp
14
USER=nbrodin
15
PASS=chkdsk
16

  
17
#Distribution groups
18
#-------------------
19

  
20
#GROUP 0
21
PROJECTS[0]="org.gvsig.raster.cache 
22
org.gvsig.raster 
23
org.gvsig.raster.gdal 
24
org.gvsig.raster.tilecache 
25
org.gvsig.raster.tools"
26
REPO_NAME[0]="Raster" #Repository of packages
27
URL_REPO[0]="https://devel.gvsig.org/download/projects/${REPO_NAME[0]}/pool/"
28
URL_SVN[0]="https://devel.gvsig.org/svn/gvsig-raster/"
29
PATH_TICKET[0]="/tmp/ticket-raster.txt"
30
PLUGINS[0]="org.gvsig.raster.tilecache/org.gvsig.raster.tilecache.app
31
org.gvsig.raster.tools/org.gvsig.raster.tools.app.basic 
32
org.gvsig.raster.gdal/org.gvsig.raster.gdal.app"
33
ARCH_DEP[0]="org.gvsig.raster.tilecache/org.gvsig.raster.tilecache.app
34
org.gvsig.raster.gdal/org.gvsig.raster.gdal.app" #Architecture dependent plugins 
35

  
36
#GROUP 1
37
PROJECTS[1]="org.gvsig.raster.multifile
38
org.gvsig.raster.reproject"
39
REPO_NAME[1]="Raster"
40
URL_REPO[1]="https://devel.gvsig.org/download/projects/${REPO_NAME[1]}/pool/"
41
URL_SVN[1]="https://devel.gvsig.org/svn/gvsig-raster/"
42
PATH_TICKET[1]="/tmp/ticket-raster.txt"
43
PLUGINS[1]="org.gvsig.raster.multifile/org.gvsig.raster.multifile.app.multifileclient
44
org.gvsig.raster.reproject/org.gvsig.raster.reproject.app.reprojectclient"
45
ARCH_DEP[1]=""
46

  
47
#GROUP 2
48
PROJECTS[2]="org.gvsig.raster.ermapper 
49
org.gvsig.raster.lizardtech 
50
org.gvsig.raster.netcdf"
51
REPO_NAME[2]="Raster"
52
URL_REPO[2]="https://devel.gvsig.org/download/projects/${REPO_NAME[2]}/pool/"
53
URL_SVN[2]="https://devel.gvsig.org/svn/gvsig-raster/"
54
PATH_TICKET[2]="/tmp/ticket-raster.txt"
55
PLUGINS[2]="org.gvsig.raster.netcdf/org.gvsig.raster.netcdf.app.netcdfclient 
56
org.gvsig.raster.ermapper/org.gvsig.raster.ermapper.app
57
org.gvsig.raster.lizardtech/org.gvsig.raster.lizardtech.app"
58
ARCH_DEP[2]="org.gvsig.raster.ermapper/org.gvsig.raster.ermapper.app
59
org.gvsig.raster.lizardtech/org.gvsig.raster.lizardtech.app"
60

  
61
#GROUP 3
62
PROJECTS[3]="org.gvsig.raster.wmts 
63
org.gvsig.raster.wms 
64
org.gvsig.raster.wcs
65
org.gvsig.raster.postgis"
66
REPO_NAME[3]="Raster"
67
URL_REPO[3]="https://devel.gvsig.org/download/projects/${REPO_NAME[3]}/pool/"
68
URL_SVN[3]="https://devel.gvsig.org/svn/gvsig-raster/"
69
PATH_TICKET[3]="/tmp/ticket-raster.txt"
70
PLUGINS[3]="org.gvsig.raster.wmts/org.gvsig.raster.wmts.app.wmtsclient 
71
org.gvsig.raster.wms/org.gvsig.raster.wms.app.wmsclient 
72
org.gvsig.raster.wcs/org.gvsig.raster.wcs.app.wcsclient 
73
org.gvsig.raster.postgis/org.gvsig.raster.postgis.app.postgisrasterclient"
74
ARCH_DEP[3]=""
75

  
76
#GROUP 4
77
PROJECTS[4]="org.gvsig.raster.georeferencing"
78
REPO_NAME[4]="Raster"
79
URL_REPO[4]="https://devel.gvsig.org/download/projects/${REPO_NAME[4]}/pool/"
80
URL_SVN[4]="https://devel.gvsig.org/svn/gvsig-georeferencing/"
81
PATH_TICKET[4]="/tmp/ticket-raster.txt"
82
PLUGINS[4]="org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.app.georeferencingclient"
83
ARCH_DEP[4]=""
84

  
85
#GROUP 5
86
PROJECTS[5]="org.gvsig.raster.osm"
87
REPO_NAME[5]="Raster"
88
URL_REPO[5]="https://devel.gvsig.org/download/projects/${REPO_NAME[5]}/pool/"
89
URL_SVN[5]="https://devel.gvsig.org/svn/gvsig-osm/"
90
PATH_TICKET[5]="/tmp/ticket-raster.txt"
91
PLUGINS[5]="org.gvsig.raster.osm/org.gvsig.raster.osm.app.osmclient"
92
ARCH_DEP[5]=""
93

  
94
#GROUP 6
95
PROJECTS[6]="org.gvsig.geoprocess"
96
REPO_NAME[6]="gvsig-geoprocess"
97
URL_REPO[6]="https://devel.gvsig.org/download/projects/${REPO_NAME[6]}/pool/"
98
URL_SVN[6]="https://devel.gvsig.org/svn/gvsig-geoprocess/"
99
PATH_TICKET[6]="/tmp/ticket-geoprocess.txt"
100
PLUGINS[6]="org.gvsig.geoprocess/org.gvsig.geoprocess.app/org.gvsig.geoprocess.app.algorithm
101
org.gvsig.geoprocess/org.gvsig.geoprocess.app/org.gvsig.geoprocess.app.mainplugin
102
org.gvsig.geoprocess/org.gvsig.geoprocess.app/org.gvsig.geoprocess.app.sextante
103
org.gvsig.geoprocess/org.gvsig.geoprocess.app/org.gvsig.geoprocess.app.tool"
104
ARCH_DEP[6]=""
105

  
106
#Platforms supported (Add a new block for a new architecture)
107
#-------------------------------------------------------------
108

  
109
ARCH="i386"
110
TYPE="dynamic"
111

  
112
PLATFORM[0]="linux"
113
COMPILER[0]="gcc4"
114
DISTRIBUTION[0]="all"
115
CLASSIFIER[0]=${PLATFORM[0]}"-"${DISTRIBUTION[0]}"-"${COMPILER[0]}"-"$ARCH"-"$TYPE
116

  
117
PLATFORM[1]="win"
118
COMPILER[1]="vs8"
119
DISTRIBUTION[1]="nt"
120
CLASSIFIER[1]=${PLATFORM[1]}"-"${DISTRIBUTION[1]}"-"${COMPILER[1]}"-"$ARCH"-"$TYPE
121

  
122
#-------------------------
123
#End configuration section
124
#-------------------------
125

  
126
ALL_PROJECTS=${PROJECTS[*]}
127
ALL_PLUGINS=${PLUGINS[*]}
128
ARCH_DEP_PLUGINS=${ARCH_DEP[*]}
129

  
130
for k in `seq 1 ${#PLATFORM[@]}`
131
do
132
  let "i=k-1";
133
  INSTALL_PARAMS[$i]="install -Dnative-platform="${PLATFORM[$i]}" -Dnative-compiler="${COMPILER[$i]}" -Dnative-arch="$ARCH" -Dnative-distribution="${DISTRIBUTION[$i]}" -Dlibrary-type="$TYPE" -Dnative-classifier="${CLASSIFIER[$i]}" -Dnative_classifier="${CLASSIFIER[$i]}" -Dmaven.test.skip -Dmaven.javadoc.skip=true -Danimal.sniffer.skip=true -Dlicense.skip=true"
134
done
135

  
136
if [ $1 != "-changeversion" ] ; then
137
  PACKAGE_TO_BUILD=$2
138

  
139
  if [ -n $PACKAGE_TO_BUILD -a  $PACKAGE_TO_BUILD -ge ${#PROJECTS[@]} ]; then
140
    t=${#PROJECTS[@]}
141
    let "t=t-1"
142
    echo "Number of package to build wrong. Maximum "$t
143
    exit
144
  fi
145

  
146
  if [ -z $PACKAGE_TO_BUILD ]; then #Si PACKAGE_TO_BUILD es null
147
    PROJECTS_TO_BUILD=$ALL_PROJECTS
148
  else
149
    PROJECTS_TO_BUILD=${PROJECTS[$PACKAGE_TO_BUILD]}
150
  fi
151

  
152
  if [ -z $PACKAGE_TO_BUILD ]; then
153
    PLUGINS_TO_BUILD=$ALL_PLUGINS
154
  else
155
    PLUGINS_TO_BUILD=${PLUGINS[$PACKAGE_TO_BUILD]}
156
  fi
157

  
158
  if [ -z $PACKAGE_TO_BUILD ]; then
159
    PLUGINS_ARCH_DEP_TO_BUILD=$ARCH_DEP_PLUGINS
160
  else
161
    PLUGINS_ARCH_DEP_TO_BUILD=${ARCH_DEP[$PACKAGE_TO_BUILD]}
162
  fi
163
fi
164

  
165
#-------------------------------------------------
166
# HELP
167
#-------------------------------------------------
168

  
169
if [ "$1" = "--help" ] ; then
170
   echo "Usage: First parameter:"
171
   echo "          -all (clean, update, buildnumber, install, tags, commit, ticket, upload)"
172
   echo "          -clean"
173
   echo "          -update"
174
   echo "          -buildnumber"
175
   echo "          -install"
176
   echo "          -upload: subir al repositorio"
177
   echo "          -tags: crear tags tagdate_fecha_hora"
178
   echo "          -commit: subir build number"
179
   echo "          -ticket: crear fichero de texto con las URLS de los índices para el ticket" 
180
   echo "       Second parameter:"
181
   echo "           -number: Number of group to build the package or empty to build all"
182
   echo ""
183
   echo "Other utils:"
184
   echo "          -changeversion <old_version> <new_version>:Change the parent pom version (org.gvsig.desktop) of all projects"
185
   echo "          -eclipse: mvn eclipse:eclipse"
186
   echo "          -basicinstall: mvn install without copy and decompress depman"
187
   echo ""
188
   echo "Para hacer nuevo empaquetado"
189
   echo "----------------------------"
190
   echo "   Recomendable usar cpulimit -e java -l 50 -b si se necesita CPU para otras tareas"
191
   echo "   1 - Comprobar y actualizar variables"
192
   echo "   2 - Ejecutar ./package.sh -clean para limpiar"
193
   echo "   3 - Ejecutar ./package.sh -update para actualizar los proyectos"
194
   echo "   4 - Ejecutar ./package.sh -buildnumber para actualizar los build number"
195
   echo "   5 - Ejecutar ./package.sh -install para instalar los proyectos en ~/.gvsig-devel.properties y empaquetar"
196
   echo "   6 - (Testear lo instalado y comprobar que en tmp están todos los paquetes)"
197
   echo "   7 - Ejecutar ./package.sh -upload para subir a URL_REPO"
198
   echo "   8 - Ejecutar ./package.sh -commit para subir los buildnumber"
199
   echo "   9 - Ejecutar ./package.sh -tags para crear tags en URL_SVN"
200
   echo "   10 - Ejecutar ./package.sh -ticket para generar el fichero con las urls de los índices"
201
   exit
202
fi
203

  
204

  
205
#-------------------------------------------------
206
# CLEAN
207
#-------------------------------------------------
208

  
209
clean() {
210
  echo "***********************************"
211
  echo "Clean"
212
  echo "***********************************"
213
  
214
  for i in $PROJECTS_TO_BUILD
215
    do
216
      cd $i
217
      echo "-----------------"
218
      echo "Cambiando a"....$i
219
      echo "Ejecutando clean"
220
      mvn clean
221
      cd ..
222
    done
223
}
224

  
225
#-------------------------------------------------
226
# UPDATE
227
#-------------------------------------------------
228

  
229
update() {
230
  for i in $PROJECTS_TO_BUILD
231
    do
232
      cd $i
233
      echo "-----------------"
234
      echo "Cambiando a"....$i
235
      echo "Ejecutando svn update "
236
      svn update;
237
      cd ..
238
    done
239
}
240

  
241
#-------------------------------------------------
242
# BUILDNUMBER
243
# Increase the build number for all plugins
244
#-------------------------------------------------
245

  
246
increaseBuildNumber() {
247
  DIR_BASE=`pwd`
248
  for i in $PLUGINS_TO_BUILD
249
   do
250
     if [ -d $i ]; then
251
       cd $i
252
       if [ -f buildNumber.properties ]; then
253
         CURRENT_VER=`cat buildNumber.properties | grep "buildNumber=" | cut -d'=' -f2`
254
         NEXT_VER=$CURRENT_VER
255
         let "NEXT_VER=NEXT_VER+1";
256
         echo "Changin buildNumber "$CURRENT_VER" by "$NEXT_VER" IN "$i
257
         (cat buildNumber.properties | sed -e "s/buildNumber=${CURRENT_VER}/buildNumber=${NEXT_VER}/g") > tmp
258
         rm buildNumber.properties
259
         mv tmp buildNumber.properties
260
       fi
261
     fi
262
     cd $DIR_BASE
263
   done
264
}
265

  
266
#-------------------------------------------------
267
# Copy to $PACKAGE_DIRECTORY
268
#-------------------------------------------------
269

  
270
copyToPackageFolder() {
271
  DIR_BASE=`pwd`
272
  for i in $PLUGINS_TO_BUILD 
273
    do
274
      cd $i/target
275
      echo "-----------------"
276
      echo "Cambiando a"....$i/target
277
      echo "Copiando "$i" a "$PACKAGE_DIRECTORY
278
      COUNT_SLASHES=`grep -o "\/" <<< "$i" | wc -l` #Count the number of slashes in the path
279
      if [ $COUNT_SLASHES -eq 1 ]; then
280
        pad=`echo $i | cut -d/ -f2`
281
      fi
282
      if [ $COUNT_SLASHES -eq 2 ]; then
283
        pad=`echo $i | cut -d/ -f3`
284
      fi
285
      mkdir $PACKAGE_DIRECTORY/$pad
286
      rename 's/\.zip$//' *.gvspkg.zip  #Elimina los .zip si los gvspkg están como .zip
287
      cp $PACKAGE_PREFIX* $PACKAGE_DIRECTORY/$pad
288
      cd $DIR_BASE
289
   done
290

  
291
}
292

  
293
#-------------------------------------------------
294
# Install libraries and package plugins
295
#-------------------------------------------------
296

  
297
installAndPackage() {
298
  echo "***********************************"
299
  echo "Install"
300
  echo "***********************************"
301

  
302
  DIR_BASE=`pwd`
303

  
304
  #------Install and Package---------
305

  
306
  for i in $PROJECTS_TO_BUILD
307
    do
308
      cd $i
309
      echo "-----------------"
310
      echo "Cambiando a"....$i
311
      echo "Ejecutando mvn "${INSTALL_PARAMS[0]}
312
      mvn ${INSTALL_PARAMS[0]};
313
      cd ..
314
    done
315

  
316

  
317
  for i in $PLUGINS_ARCH_DEP_TO_BUILD #Plugins architecture dependent
318
    do
319
      dir=`cut -d/ -f1 <<<$i`
320
      cd $dir
321
      echo "-----------------"
322
      echo "Cambiando a"....$dir
323
      
324
      for k in `seq 2 ${#INSTALL_PARAMS[@]}`
325
       do
326
         let "j=k-1";
327
         echo "Ejecutando mvn "$j ${INSTALL_PARAMS[$j]}
328
         mvn ${INSTALL_PARAMS[$j]};
329
       done
330

  
331
      cd $DIR_BASE
332
   done
333
}
334

  
335
#-------------------------------------------------
336
# Unpack deman
337
#-------------------------------------------------
338

  
339
unpackDepman( ) { 
340
 if [ "$PLUGINS_ARCH_DEP_TO_BUILD" != "" ]; then #Si no hay plugins dependientes de la arquitectura no descomprimimos el depman
341
   if [ -f $HOME"/"$LIB_PKG ]; then
342
      CURRENT_DIR=`pwd`
343
      cd $HOME
344
      tar -xzvf $LIB_PKG
345
      cd $CURRENT_DIR
346
   else
347
      echo "Error: No existe "$HOME"/"$LIB_PKG"!!!!"
348
      exit
349
   fi
350
 fi
351
}
352

  
353

  
354
#----------------------------------------------------------
355
#Gets the number of the version reading it from the pom.xml
356
#----------------------------------------------------------
357

  
358
loadPluginVersion( ) {
359
  CURRENT_DIR=`pwd`
360
  VERSION_COUNTER=0
361
  for k in `seq 1 ${#PLUGINS[@]}`
362
    do
363
      let "i=k-1";
364
      for j in ${PLUGINS[$i]}
365
        do 
366
          if [ -d $j ]; then
367
            cd $j
368
            if [ -f pom.xml ]; then
369
               exec<pom.xml
370
               while read line
371
                 do
372
                   if test "${line#*<version>}" != "$line" ; then #La linea contiene el tag <version>
373
                      NEW_VN=`sed -e "s/<version>//g" <<< $line`
374
                      NEW_VN=`sed -e "s/<\/version>//g" <<< $NEW_VN`
375
                      PLUGIN_VERSIONS[$VERSION_COUNTER]=${PLUGIN_VERSIONS[$VERSION_COUNTER]}" "$NEW_VN
376
                      let "VERSION_COUNTER=VERSION_COUNTER+1"
377
                      break
378
                   fi
379
                 done
380
            fi
381
            cd $CURRENT_DIR
382
          fi
383
        done
384
    done
385
}
386

  
387
#-------------------------------------------------
388
#Loads the array of build numbers
389
#-------------------------------------------------
390

  
391
loadBuildNumber() {
392
  CURRENT_DIR=`pwd`
393
  BN_COUNTER=0
394
  for k in `seq 1 ${#PLUGINS[@]}`
395
    do
396
      let "i=k-1";
397
      for j in ${PLUGINS[$i]}
398
        do 
399
          if [ -d $j ]; then
400
            cd $j
401
            if [ -f buildNumber.properties ]; then
402
              NEW_BN=`cat buildNumber.properties | grep "buildNumber=" | cut -d'=' -f2`
403
              BN[$BN_COUNTER]=${BN[$BN_COUNTER]}" "$NEW_BN
404
              let "BN_COUNTER=BN_COUNTER+1"
405
            fi
406
            cd $CURRENT_DIR
407
          fi
408
        done
409
    done
410
}
411

  
412
#-------------------------------------------------
413
#COMMIT CHANGES (BUILD NUMBERS)
414
#-------------------------------------------------
415

  
416
commit() {
417
 CURRENT_DIR=`pwd`
418
 for i in $PROJECTS_TO_BUILD
419
    do
420
      cd $i
421
      echo "-----------------"
422
      echo "Cambiando a"....$i
423
      echo "Ejecutando svn commit "
424
      svn commit * -m "New build number";
425
      cd $CURRENT_DIR
426
    done
427
}
428

  
429
#-------------------------------------------------
430
# REVERT CHANGES (SOLO TEST)
431
#-------------------------------------------------
432
if [ "$1" = "-revert" ] ; then
433
 for i in $PROJECTS_TO_BUILD
434
    do
435
      cd $i
436
      echo "-----------------"
437
      echo "Cambiando a"....$i
438
      echo "Ejecutando svn update "
439
      svn revert --recursive .
440
      cd ..
441
    done
442
fi
443

  
444
#-------------------------------------------------
445
# TICKET
446
#-------------------------------------------------
447

  
448
ticketGeneration() {
449
 for k in `seq 1 ${#PATH_TICKET[@]}`
450
   do
451
     let "i=k-1";
452
     rm ${PATH_TICKET[$i]} 2> /dev/null 
453
   done
454

  
455
 for k in `seq 1 ${#URL_REPO[@]}`
456
   do
457
     let "i=k-1";
458
     POS_INSIDE_PLUGINS=1 #Position of the plugin inside PLUGINS
459
     for j in ${PLUGINS[$i]}
460
       do
461
         #Si se ha seleccionado algún grupo en concreto solo se añadirá este al fichero (-n está definido)
462
         if [ -n $PACKAGE_TO_BUILD -a $i -ne $PACKAGE_TO_BUILD ] ; then
463
           break
464
         fi
465

  
466
         COUNT_SLASHES=`grep -o "\/" <<< "$j" | wc -l` #Count the number of slashes in the path
467
         if [ $COUNT_SLASHES -eq 1 ]; then
468
           package=`echo $j | cut -d/ -f2`
469
         fi
470
         if [ $COUNT_SLASHES -eq 2 ]; then
471
           package=`echo $j | cut -d/ -f3`
472
         fi
473

  
474
         PLUGIN_VER=`cut -d' ' -f$POS_INSIDE_PLUGINS <<< ${PLUGIN_VERSIONS[$i]}`
475
         PLUGIN_BN=`cut -d' ' -f$POS_INSIDE_PLUGINS <<< ${BN[$i]}`
476

  
477
	 if test "${ARCH_DEP_PLUGINS#*$j}" != "$ARCH_DEP_PLUGINS"
478
         then
479
           echo "${URL_REPO[$i]}$package/gvSIG-desktop-$GVSIG_VERSION-$package-$PLUGIN_VER-$PLUGIN_BN-$RELEASE-lin-x86-j1_5.gvspki" >> ${PATH_TICKET[$i]}
480
           echo "" >> ${PATH_TICKET[$i]}
481
           echo "${URL_REPO[$i]}$package/gvSIG-desktop-$GVSIG_VERSION-$package-$PLUGIN_VER-$PLUGIN_BN-$RELEASE-win-x86-j1_5.gvspki" >> ${PATH_TICKET[$i]}
482
         else
483
           echo "${URL_REPO[$i]}$package/gvSIG-desktop-$GVSIG_VERSION-$package-$PLUGIN_VER-$PLUGIN_BN-$RELEASE-all-all-j1_5.gvspki" >> ${PATH_TICKET[$i]}
484
         fi
485

  
486
         echo "" >> ${PATH_TICKET[$i]}
487
         let "POS_INSIDE_PLUGINS=POS_INSIDE_PLUGINS+1";
488
       done
489
   done
490
}
491

  
492
#-------------------------------------------------
493
# TAGS
494
#-------------------------------------------------
495

  
496
tagsGeneration() {
497
 echo "***********************************"
498
 echo "Creating tags"
499
 echo "***********************************"
500

  
501
 tag=`date +%d%m%Y_%H_%M`
502

  
503
  for k in `seq 1 ${#URL_SVN[@]}`
504
   do
505
     let "i=k-1";
506
     for j in ${PROJECTS[$i]}
507
       do
508
         #Si se ha seleccionado algún grupo en concreto solo se hará el tag de estos proyectos
509
         if [ -n $PACKAGE_TO_BUILD -a $i -ne $PACKAGE_TO_BUILD ] ; then
510
           break
511
         fi
512

  
513
         #echo "svn copy ${URL_SVN[$i]}$j/trunk ${URL_SVN[$i]}$j/tags/tagdate_$tag -m \"Tag build $tag\""
514
         svn copy ${URL_SVN[$i]}$j/trunk ${URL_SVN[$i]}$j/tags/tagdate_$tag -m "Tag build $tag"
515
       done
516
   done
517
}
518

  
519
#-------------------------------------------------
520
# CHANGE THE PROJECT VERSION
521
# Change the version of the pom parent in a project
522
#-------------------------------------------------
523

  
524
changeProjectVersion() {
525
  CURRENT_DIR=`pwd`
526
  if [ -z $1 ] ; then
527
    echo "Current version number not defined"
528
    exit
529
  fi
530

  
531
  if [ -z $2 ] ; then
532
    echo "Next version number not defined"
533
    exit
534
  fi
535

  
536
  for i in `ls`
537
    do 
538
      if [[ "$i" == org.gvsig.* ]] ; then 
539
        echo $i
540
        cd $i
541
	(cat pom.xml | sed -e "s/<version>$1<\/version>/<version>$2<\/version>/") > tmp
542
	rm pom.xml
543
        mv tmp pom.xml
544
	cd $CURRENT_DIR
545
      fi
546
    done
547
}
548

  
549
#-------------------------------------------------
550
# ECLIPSE .project
551
#-------------------------------------------------
552

  
553
eclipse() {
554
  echo "***********************************"
555
  echo "Eclipse:eclipse"
556
  echo "***********************************"
557

  
558
  DIR_BASE=`pwd`
559

  
560
  for i in $PROJECTS_TO_BUILD
561
    do
562
      cd $i
563
      echo "-----------------"
564
      echo "Cambiando a"....$i
565
      echo "Ejecutando mvn eclipse:eclipse"
566
      mvn eclipse:eclipse;
567
      cd ..
568
    done
569
}
570

  
571

  
572

  
573
#-------------------------------------------------
574
# COMMANDS
575
#-------------------------------------------------
576

  
577
if [ "$1" = "-all" ] ; then
578
  clean
579
  update
580
  increaseBuildnumber
581
  unpackDepman
582
  installAndPackage
583
  copyToPackageFolder
584
  commit
585
  tagsGeneration
586
  loadBuildNumber
587
  loadPluginVersion
588
  ticketGeneration
589
fi
590

  
591
if [ "$1" = "-basicinstall" ] ; then
592
  installAndPackage
593
fi
594

  
595
if [ "$1" = "-install" ] ; then
596
  unpackDepman
597
  installAndPackage
598
  copyToPackageFolder
599
fi
600

  
601
if [ "$1" = "-clean" ] ; then
602
  clean
603
fi
604

  
605
if [ "$1" = "-update" ] ; then
606
  update
607
fi
608

  
609
if [ "$1" = "-buildnumber" ] ; then
610
  increaseBuildNumber
611
fi
612

  
613
if [ "$1" = "-commit" ] ; then
614
  commit
615
fi
616

  
617
if [ "$1" = "-ticket" ] ; then
618
 loadBuildNumber
619
 loadPluginVersion
620
 ticketGeneration
621
fi
622

  
623
if [ "$1" = "-tags" ] ; then
624
 tagsGeneration
625
fi 
626

  
627
if [ "$1" = "-changeversion" ] ; then
628
 changeProjectVersion $2 $3
629
fi
630

  
631
if [ "$1" = "-eclipse" ] ; then
632
 eclipse
633
fi
634

  
635
if [ "$1" != "-upload" -a "$1" != "-all" ] ; then
636
  exit
637
fi  
638

  
639
#-------------------------------------------------
640
# UPLOAD
641
#-------------------------------------------------
642

  
643
echo "***********************************"
644
echo "Uploading"
645
echo "***********************************"
646

  
647
CURRENT_DIRECTORY=`pwd`;
648
echo "Cambiando a..."$PACKAGE_DIRECTORY
649
cd $PACKAGE_DIRECTORY
650

  
651

  
652
for k in `seq 1 ${#URL_REPO[@]}`
653
do
654
let "i=k-1";
655

  
656
for j in ${PLUGINS[$i]}
657
do
658

  
659
#Si se ha seleccionado algún grupo en concreto solo se subiran los paquetes de este grupo
660
if [ -n $PACKAGE_TO_BUILD -a $i -ne $PACKAGE_TO_BUILD ] ; then
661
 break
662
fi
663

  
664
PKG_DIR=`echo $j | cut -d/ -f3`
665
if [ "$PKG_DIR" == "" ] ; then 
666
PKG_DIR=`echo $j | cut -d/ -f2`
667
fi
668

  
669
expect <<EOD
670
set timeout -1
671
spawn cadaver ${URL_REPO[$i]}
672
expect (y/n)
673
send y\r
674
expect dav:/download/projects/${REPO_NAME[$i]}/pool/>
675
send "cd $PKG_DIR\r"
676
expect $PKG_DIR/>
677
send "lcd $PKG_DIR\r"
678
expect $PKG_DIR/>
679
send "mput *.gvspki\r"
680
expect "Nombre de usuario:"
681
send $USER\r
682
expect "Contraseña:"
683
send $PASS\r
684
expect $PKG_DIR/>
685
send "mput *.gvspkg\r"
686
expect $PKG_DIR/>
687
send quit\r
688
expect "cerrada."
689
EOD
690

  
691
done
692
done
693

  
694
cd $CURRENT_DIRECTORY
org.gvsig.raster/trunk/org.gvsig.raster/gvprjutils
1
#/bin/sh
2

  
3
#----------------------
4
#Configuration section
5
#----------------------
6

  
7
GVSIG_VERSION=2.1.0
8
FIX_VERSION=SNAPSHOT
9
RELEASE=testing
10
PACKAGE_PREFIX=gvSIG-desktop
11
LIB_PKG=depman.tgz
12

  
13
PACKAGE_DIRECTORY=/tmp
14
USER=nbrodin
15
PASS=chkdsk
16

  
17
#Distribution groups
18
#-------------------
19

  
20
#GROUP 0
21
PROJECTS[0]="org.gvsig.raster.cache 
22
org.gvsig.raster 
23
org.gvsig.raster.gdal 
24
org.gvsig.raster.tilecache 
25
org.gvsig.raster.tools"
26
REPO_NAME[0]="Raster" #Repository of packages
27
URL_REPO[0]="https://devel.gvsig.org/download/projects/${REPO_NAME[0]}/pool/"
28
URL_SVN[0]="https://devel.gvsig.org/svn/gvsig-raster/"
29
PATH_TICKET[0]="/tmp/ticket-raster.txt"
30
PLUGINS[0]="org.gvsig.raster.tilecache/org.gvsig.raster.tilecache.app
31
org.gvsig.raster.tools/org.gvsig.raster.tools.app.basic 
32
org.gvsig.raster.gdal/org.gvsig.raster.gdal.app"
33
ARCH_DEP[0]="org.gvsig.raster.tilecache/org.gvsig.raster.tilecache.app
34
org.gvsig.raster.gdal/org.gvsig.raster.gdal.app" #Architecture dependent plugins 
35

  
36
#GROUP 1
37
PROJECTS[1]="org.gvsig.raster.multifile
38
org.gvsig.raster.reproject"
39
REPO_NAME[1]="Raster"
40
URL_REPO[1]="https://devel.gvsig.org/download/projects/${REPO_NAME[1]}/pool/"
41
URL_SVN[1]="https://devel.gvsig.org/svn/gvsig-raster/"
42
PATH_TICKET[1]="/tmp/ticket-raster.txt"
43
PLUGINS[1]="org.gvsig.raster.multifile/org.gvsig.raster.multifile.app.multifileclient
44
org.gvsig.raster.reproject/org.gvsig.raster.reproject.app.reprojectclient"
45
ARCH_DEP[1]=""
46

  
47
#GROUP 2
48
PROJECTS[2]="org.gvsig.raster.ermapper 
49
org.gvsig.raster.lizardtech 
50
org.gvsig.raster.netcdf"
51
REPO_NAME[2]="Raster"
52
URL_REPO[2]="https://devel.gvsig.org/download/projects/${REPO_NAME[2]}/pool/"
53
URL_SVN[2]="https://devel.gvsig.org/svn/gvsig-raster/"
54
PATH_TICKET[2]="/tmp/ticket-raster.txt"
55
PLUGINS[2]="org.gvsig.raster.netcdf/org.gvsig.raster.netcdf.app.netcdfclient 
56
org.gvsig.raster.ermapper/org.gvsig.raster.ermapper.app
57
org.gvsig.raster.lizardtech/org.gvsig.raster.lizardtech.app"
58
ARCH_DEP[2]="org.gvsig.raster.ermapper/org.gvsig.raster.ermapper.app
59
org.gvsig.raster.lizardtech/org.gvsig.raster.lizardtech.app"
60

  
61
#GROUP 3
62
PROJECTS[3]="org.gvsig.raster.wmts 
63
org.gvsig.raster.wms 
64
org.gvsig.raster.wcs
65
org.gvsig.raster.postgis"
66
REPO_NAME[3]="Raster"
67
URL_REPO[3]="https://devel.gvsig.org/download/projects/${REPO_NAME[3]}/pool/"
68
URL_SVN[3]="https://devel.gvsig.org/svn/gvsig-raster/"
69
PATH_TICKET[3]="/tmp/ticket-raster.txt"
70
PLUGINS[3]="org.gvsig.raster.wmts/org.gvsig.raster.wmts.app.wmtsclient 
71
org.gvsig.raster.wms/org.gvsig.raster.wms.app.wmsclient 
72
org.gvsig.raster.wcs/org.gvsig.raster.wcs.app.wcsclient 
73
org.gvsig.raster.postgis/org.gvsig.raster.postgis.app.postgisrasterclient"
74
ARCH_DEP[3]=""
75

  
76
#GROUP 4
77
PROJECTS[4]="org.gvsig.raster.georeferencing"
78
REPO_NAME[4]="Raster"
79
URL_REPO[4]="https://devel.gvsig.org/download/projects/${REPO_NAME[4]}/pool/"
80
URL_SVN[4]="https://devel.gvsig.org/svn/gvsig-georeferencing/"
81
PATH_TICKET[4]="/tmp/ticket-raster.txt"
82
PLUGINS[4]="org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.app.georeferencingclient"
83
ARCH_DEP[4]=""
84

  
85
#GROUP 5
86
PROJECTS[5]="org.gvsig.raster.osm"
87
REPO_NAME[5]="Raster"
88
URL_REPO[5]="https://devel.gvsig.org/download/projects/${REPO_NAME[5]}/pool/"
89
URL_SVN[5]="https://devel.gvsig.org/svn/gvsig-osm/"
90
PATH_TICKET[5]="/tmp/ticket-raster.txt"
91
PLUGINS[5]="org.gvsig.raster.osm/org.gvsig.raster.osm.app.osmclient"
92
ARCH_DEP[5]=""
93

  
94
#GROUP 6
95
PROJECTS[6]="org.gvsig.geoprocess"
96
REPO_NAME[6]="gvsig-geoprocess"
97
URL_REPO[6]="https://devel.gvsig.org/download/projects/${REPO_NAME[6]}/pool/"
98
URL_SVN[6]="https://devel.gvsig.org/svn/gvsig-geoprocess/"
99
PATH_TICKET[6]="/tmp/ticket-geoprocess.txt"
100
PLUGINS[6]="org.gvsig.geoprocess/org.gvsig.geoprocess.app/org.gvsig.geoprocess.app.algorithm
101
org.gvsig.geoprocess/org.gvsig.geoprocess.app/org.gvsig.geoprocess.app.mainplugin
102
org.gvsig.geoprocess/org.gvsig.geoprocess.app/org.gvsig.geoprocess.app.sextante
103
org.gvsig.geoprocess/org.gvsig.geoprocess.app/org.gvsig.geoprocess.app.tool"
104
ARCH_DEP[6]=""
105

  
106
#Platforms supported (Add a new block for a new architecture)
107
#-------------------------------------------------------------
108

  
109
ARCH="i386"
110
TYPE="dynamic"
111

  
112
PLATFORM[0]="linux"
113
COMPILER[0]="gcc4"
114
DISTRIBUTION[0]="all"
115
CLASSIFIER[0]=${PLATFORM[0]}"-"${DISTRIBUTION[0]}"-"${COMPILER[0]}"-"$ARCH"-"$TYPE
116

  
117
PLATFORM[1]="win"
118
COMPILER[1]="vs8"
119
DISTRIBUTION[1]="nt"
120
CLASSIFIER[1]=${PLATFORM[1]}"-"${DISTRIBUTION[1]}"-"${COMPILER[1]}"-"$ARCH"-"$TYPE
121

  
122
#-------------------------
123
#End configuration section
124
#-------------------------
125

  
126
ALL_PROJECTS=${PROJECTS[*]}
127
ALL_PLUGINS=${PLUGINS[*]}
128
ARCH_DEP_PLUGINS=${ARCH_DEP[*]}
129

  
130
for k in `seq 1 ${#PLATFORM[@]}`
131
do
132
  let "i=k-1";
133
  INSTALL_PARAMS[$i]="install -Dnative-platform="${PLATFORM[$i]}" -Dnative-compiler="${COMPILER[$i]}" -Dnative-arch="$ARCH" -Dnative-distribution="${DISTRIBUTION[$i]}" -Dlibrary-type="$TYPE" -Dnative-classifier="${CLASSIFIER[$i]}" -Dnative_classifier="${CLASSIFIER[$i]}" -Dmaven.test.skip -Dmaven.javadoc.skip=true -Danimal.sniffer.skip=true -Dlicense.skip=true"
134
done
135

  
136
if [ $1 != "-changeversion" ] ; then
137
  PACKAGE_TO_BUILD=$2
138

  
139
  if [ -n $PACKAGE_TO_BUILD -a  $PACKAGE_TO_BUILD -ge ${#PROJECTS[@]} ]; then
140
    t=${#PROJECTS[@]}
141
    let "t=t-1"
142
    echo "Number of package to build wrong. Maximum "$t
143
    exit
144
  fi
145

  
146
  if [ -z $PACKAGE_TO_BUILD ]; then #Si PACKAGE_TO_BUILD es null
147
    PROJECTS_TO_BUILD=$ALL_PROJECTS
148
  else
149
    PROJECTS_TO_BUILD=${PROJECTS[$PACKAGE_TO_BUILD]}
150
  fi
151

  
152
  if [ -z $PACKAGE_TO_BUILD ]; then
153
    PLUGINS_TO_BUILD=$ALL_PLUGINS
154
  else
155
    PLUGINS_TO_BUILD=${PLUGINS[$PACKAGE_TO_BUILD]}
156
  fi
157

  
158
  if [ -z $PACKAGE_TO_BUILD ]; then
159
    PLUGINS_ARCH_DEP_TO_BUILD=$ARCH_DEP_PLUGINS
160
  else
161
    PLUGINS_ARCH_DEP_TO_BUILD=${ARCH_DEP[$PACKAGE_TO_BUILD]}
162
  fi
163
fi
164

  
165
#-------------------------------------------------
166
# HELP
167
#-------------------------------------------------
168

  
169
if [ "$1" = "--help" ] ; then
170
   echo "Usage: First parameter:"
171
   echo "          -all (clean, update, buildnumber, install, tags, commit, ticket, upload)"
172
   echo "          -clean"
173
   echo "          -update"
174
   echo "          -buildnumber"
175
   echo "          -install"
176
   echo "          -upload: subir al repositorio"
177
   echo "          -tags: crear tags tagdate_fecha_hora"
178
   echo "          -commit: subir build number"
179
   echo "          -ticket: crear fichero de texto con las URLS de los índices para el ticket" 
180
   echo "       Second parameter:"
181
   echo "           -number: Number of group to build the package or empty to build all"
182
   echo ""
183
   echo "Other utils:"
184
   echo "          -changeversion <old_version> <new_version>:Change the parent pom version (org.gvsig.desktop) of all projects"
185
   echo "          -eclipse: mvn eclipse:eclipse"
186
   echo "          -basicinstall: mvn install without copy and decompress depman"
187
   echo ""
188
   echo "Para hacer nuevo empaquetado"
189
   echo "----------------------------"
190
   echo "   Recomendable usar cpulimit -e java -l 50 -b si se necesita CPU para otras tareas"
191
   echo "   1 - Comprobar y actualizar variables"
192
   echo "   2 - Ejecutar ./package.sh -clean para limpiar"
193
   echo "   3 - Ejecutar ./package.sh -update para actualizar los proyectos"
194
   echo "   4 - Ejecutar ./package.sh -buildnumber para actualizar los build number"
195
   echo "   5 - Ejecutar ./package.sh -install para instalar los proyectos en ~/.gvsig-devel.properties y empaquetar"
196
   echo "   6 - (Testear lo instalado y comprobar que en tmp están todos los paquetes)"
197
   echo "   7 - Ejecutar ./package.sh -upload para subir a URL_REPO"
198
   echo "   8 - Ejecutar ./package.sh -commit para subir los buildnumber"
199
   echo "   9 - Ejecutar ./package.sh -tags para crear tags en URL_SVN"
200
   echo "   10 - Ejecutar ./package.sh -ticket para generar el fichero con las urls de los índices"
201
   exit
202
fi
203

  
204

  
205
#-------------------------------------------------
206
# CLEAN
207
#-------------------------------------------------
208

  
209
clean() {
210
  echo "***********************************"
211
  echo "Clean"
212
  echo "***********************************"
213
  
214
  for i in $PROJECTS_TO_BUILD
215
    do
216
      cd $i
217
      echo "-----------------"
218
      echo "Cambiando a"....$i
219
      echo "Ejecutando clean"
220
      mvn clean
221
      cd ..
222
    done
223
}
224

  
225
#-------------------------------------------------
226
# UPDATE
227
#-------------------------------------------------
228

  
229
update() {
230
  for i in $PROJECTS_TO_BUILD
231
    do
232
      cd $i
233
      echo "-----------------"
234
      echo "Cambiando a"....$i
235
      echo "Ejecutando svn update "
236
      svn update;
237
      cd ..
238
    done
239
}
240

  
241
#-------------------------------------------------
242
# BUILDNUMBER
243
# Increase the build number for all plugins
244
#-------------------------------------------------
245

  
246
increaseBuildNumber() {
247
  DIR_BASE=`pwd`
248
  for i in $PLUGINS_TO_BUILD
249
   do
250
     if [ -d $i ]; then
251
       cd $i
252
       if [ -f buildNumber.properties ]; then
253
         CURRENT_VER=`cat buildNumber.properties | grep "buildNumber=" | cut -d'=' -f2`
254
         NEXT_VER=$CURRENT_VER
255
         let "NEXT_VER=NEXT_VER+1";
256
         echo "Changin buildNumber "$CURRENT_VER" by "$NEXT_VER" IN "$i
257
         (cat buildNumber.properties | sed -e "s/buildNumber=${CURRENT_VER}/buildNumber=${NEXT_VER}/g") > tmp
258
         rm buildNumber.properties
259
         mv tmp buildNumber.properties
260
       fi
261
     fi
262
     cd $DIR_BASE
263
   done
264
}
265

  
266
#-------------------------------------------------
267
# Copy to $PACKAGE_DIRECTORY
268
#-------------------------------------------------
269

  
270
copyToPackageFolder() {
271
  DIR_BASE=`pwd`
272
  for i in $PLUGINS_TO_BUILD 
273
    do
274
      cd $i/target
275
      echo "-----------------"
276
      echo "Cambiando a"....$i/target
277
      echo "Copiando "$i" a "$PACKAGE_DIRECTORY
278
      COUNT_SLASHES=`grep -o "\/" <<< "$i" | wc -l` #Count the number of slashes in the path
279
      if [ $COUNT_SLASHES -eq 1 ]; then
280
        pad=`echo $i | cut -d/ -f2`
281
      fi
282
      if [ $COUNT_SLASHES -eq 2 ]; then
283
        pad=`echo $i | cut -d/ -f3`
284
      fi
285
      mkdir $PACKAGE_DIRECTORY/$pad
286
      rename 's/\.zip$//' *.gvspkg.zip  #Elimina los .zip si los gvspkg están como .zip
287
      cp $PACKAGE_PREFIX* $PACKAGE_DIRECTORY/$pad
288
      cd $DIR_BASE
289
   done
290

  
291
}
292

  
293
#-------------------------------------------------
294
# Install libraries and package plugins
295
#-------------------------------------------------
296

  
297
installAndPackage() {
298
  echo "***********************************"
299
  echo "Install"
300
  echo "***********************************"
301

  
302
  DIR_BASE=`pwd`
303

  
304
  #------Install and Package---------
305

  
306
  for i in $PROJECTS_TO_BUILD
307
    do
308
      cd $i
309
      echo "-----------------"
310
      echo "Cambiando a"....$i
311
      echo "Ejecutando mvn "${INSTALL_PARAMS[0]}
312
      mvn ${INSTALL_PARAMS[0]};
313
      cd ..
314
    done
315

  
316

  
317
  for i in $PLUGINS_ARCH_DEP_TO_BUILD #Plugins architecture dependent
318
    do
319
      dir=`cut -d/ -f1 <<<$i`
320
      cd $dir
321
      echo "-----------------"
322
      echo "Cambiando a"....$dir
323
      
324
      for k in `seq 2 ${#INSTALL_PARAMS[@]}`
325
       do
326
         let "j=k-1";
327
         echo "Ejecutando mvn "$j ${INSTALL_PARAMS[$j]}
328
         mvn ${INSTALL_PARAMS[$j]};
329
       done
330

  
331
      cd $DIR_BASE
332
   done
333
}
334

  
335
#-------------------------------------------------
336
# Unpack deman
337
#-------------------------------------------------
338

  
339
unpackDepman( ) { 
340
 if [ "$PLUGINS_ARCH_DEP_TO_BUILD" != "" ]; then #Si no hay plugins dependientes de la arquitectura no descomprimimos el depman
341
   if [ -f $HOME"/"$LIB_PKG ]; then
342
      CURRENT_DIR=`pwd`
343
      cd $HOME
344
      tar -xzvf $LIB_PKG
345
      cd $CURRENT_DIR
346
   else
347
      echo "Error: No existe "$HOME"/"$LIB_PKG"!!!!"
348
      exit
349
   fi
350
 fi
351
}
352

  
353

  
354
#----------------------------------------------------------
355
#Gets the number of the version reading it from the pom.xml
356
#----------------------------------------------------------
357

  
358
loadPluginVersion( ) {
359
  CURRENT_DIR=`pwd`
360
  VERSION_COUNTER=0
361
  for k in `seq 1 ${#PLUGINS[@]}`
362
    do
363
      let "i=k-1";
364
      for j in ${PLUGINS[$i]}
365
        do 
366
          if [ -d $j ]; then
367
            cd $j
368
            if [ -f pom.xml ]; then
369
               exec<pom.xml
370
               while read line
371
                 do
372
                   if test "${line#*<version>}" != "$line" ; then #La linea contiene el tag <version>
373
                      NEW_VN=`sed -e "s/<version>//g" <<< $line`
374
                      NEW_VN=`sed -e "s/<\/version>//g" <<< $NEW_VN`
375
                      PLUGIN_VERSIONS[$VERSION_COUNTER]=${PLUGIN_VERSIONS[$VERSION_COUNTER]}" "$NEW_VN
376
                      let "VERSION_COUNTER=VERSION_COUNTER+1"
377
                      break
378
                   fi
379
                 done
380
            fi
381
            cd $CURRENT_DIR
382
          fi
383
        done
384
    done
385
}
386

  
387
#-------------------------------------------------
388
#Loads the array of build numbers
389
#-------------------------------------------------
390

  
391
loadBuildNumber() {
392
  CURRENT_DIR=`pwd`
393
  BN_COUNTER=0
394
  for k in `seq 1 ${#PLUGINS[@]}`
395
    do
396
      let "i=k-1";
397
      for j in ${PLUGINS[$i]}
398
        do 
399
          if [ -d $j ]; then
400
            cd $j
401
            if [ -f buildNumber.properties ]; then
402
              NEW_BN=`cat buildNumber.properties | grep "buildNumber=" | cut -d'=' -f2`
403
              BN[$BN_COUNTER]=${BN[$BN_COUNTER]}" "$NEW_BN
404
              let "BN_COUNTER=BN_COUNTER+1"
405
            fi
406
            cd $CURRENT_DIR
407
          fi
408
        done
409
    done
410
}
411

  
412
#-------------------------------------------------
413
#COMMIT CHANGES (BUILD NUMBERS)
414
#-------------------------------------------------
415

  
416
commit() {
417
 CURRENT_DIR=`pwd`
418
 for i in $PROJECTS_TO_BUILD
419
    do
420
      cd $i
421
      echo "-----------------"
422
      echo "Cambiando a"....$i
423
      echo "Ejecutando svn commit "
424
      svn commit * -m "New build number";
425
      cd $CURRENT_DIR
426
    done
427
}
428

  
429
#-------------------------------------------------
430
# REVERT CHANGES (SOLO TEST)
431
#-------------------------------------------------
432
if [ "$1" = "-revert" ] ; then
433
 for i in $PROJECTS_TO_BUILD
434
    do
435
      cd $i
436
      echo "-----------------"
437
      echo "Cambiando a"....$i
438
      echo "Ejecutando svn update "
439
      svn revert --recursive .
440
      cd ..
441
    done
442
fi
443

  
444
#-------------------------------------------------
445
# TICKET
446
#-------------------------------------------------
447

  
448
ticketGeneration() {
449
 for k in `seq 1 ${#PATH_TICKET[@]}`
450
   do
451
     let "i=k-1";
452
     rm ${PATH_TICKET[$i]} 2> /dev/null 
453
   done
454

  
455
 for k in `seq 1 ${#URL_REPO[@]}`
456
   do
457
     let "i=k-1";
458
     POS_INSIDE_PLUGINS=1 #Position of the plugin inside PLUGINS
459
     for j in ${PLUGINS[$i]}
460
       do
461
         #Si se ha seleccionado algún grupo en concreto solo se añadirá este al fichero (-n está definido)
462
         if [ -n $PACKAGE_TO_BUILD -a $i -ne $PACKAGE_TO_BUILD ] ; then
463
           break
464
         fi
465

  
466
         COUNT_SLASHES=`grep -o "\/" <<< "$j" | wc -l` #Count the number of slashes in the path
467
         if [ $COUNT_SLASHES -eq 1 ]; then
468
           package=`echo $j | cut -d/ -f2`
469
         fi
470
         if [ $COUNT_SLASHES -eq 2 ]; then
471
           package=`echo $j | cut -d/ -f3`
472
         fi
473

  
474
         PLUGIN_VER=`cut -d' ' -f$POS_INSIDE_PLUGINS <<< ${PLUGIN_VERSIONS[$i]}`
475
         PLUGIN_BN=`cut -d' ' -f$POS_INSIDE_PLUGINS <<< ${BN[$i]}`
476

  
477
	 if test "${ARCH_DEP_PLUGINS#*$j}" != "$ARCH_DEP_PLUGINS"
478
         then
479
           echo "${URL_REPO[$i]}$package/gvSIG-desktop-$GVSIG_VERSION-$package-$PLUGIN_VER-$PLUGIN_BN-$RELEASE-lin-x86-j1_5.gvspki" >> ${PATH_TICKET[$i]}
480
           echo "" >> ${PATH_TICKET[$i]}
481
           echo "${URL_REPO[$i]}$package/gvSIG-desktop-$GVSIG_VERSION-$package-$PLUGIN_VER-$PLUGIN_BN-$RELEASE-win-x86-j1_5.gvspki" >> ${PATH_TICKET[$i]}
482
         else
483
           echo "${URL_REPO[$i]}$package/gvSIG-desktop-$GVSIG_VERSION-$package-$PLUGIN_VER-$PLUGIN_BN-$RELEASE-all-all-j1_5.gvspki" >> ${PATH_TICKET[$i]}
484
         fi
485

  
486
         echo "" >> ${PATH_TICKET[$i]}
487
         let "POS_INSIDE_PLUGINS=POS_INSIDE_PLUGINS+1";
488
       done
489
   done
490
}
491

  
492
#-------------------------------------------------
493
# TAGS
494
#-------------------------------------------------
495

  
496
tagsGeneration() {
497
 echo "***********************************"
498
 echo "Creating tags"
499
 echo "***********************************"
500

  
501
 tag=`date +%d%m%Y_%H_%M`
502

  
503
  for k in `seq 1 ${#URL_SVN[@]}`
504
   do
505
     let "i=k-1";
506
     for j in ${PROJECTS[$i]}
507
       do
508
         #Si se ha seleccionado algún grupo en concreto solo se hará el tag de estos proyectos
509
         if [ -n $PACKAGE_TO_BUILD -a $i -ne $PACKAGE_TO_BUILD ] ; then
510
           break
511
         fi
512

  
513
         #echo "svn copy ${URL_SVN[$i]}$j/trunk ${URL_SVN[$i]}$j/tags/tagdate_$tag -m \"Tag build $tag\""
514
         svn copy ${URL_SVN[$i]}$j/trunk ${URL_SVN[$i]}$j/tags/tagdate_$tag -m "Tag build $tag"
515
       done
516
   done
517
}
518

  
519
#-------------------------------------------------
520
# CHANGE THE PROJECT VERSION
521
# Change the version of the pom parent in a project
522
#-------------------------------------------------
523

  
524
changeProjectVersion() {
525
  CURRENT_DIR=`pwd`
526
  if [ -z $1 ] ; then
527
    echo "Current version number not defined"
528
    exit
529
  fi
530

  
531
  if [ -z $2 ] ; then
532
    echo "Next version number not defined"
533
    exit
534
  fi
535

  
536
  for i in `ls`
537
    do 
538
      if [[ "$i" == org.gvsig.* ]] ; then 
539
        echo $i
540
        cd $i
541
	(cat pom.xml | sed -e "s/<version>$1<\/version>/<version>$2<\/version>/") > tmp
542
	rm pom.xml
543
        mv tmp pom.xml
544
	cd $CURRENT_DIR
545
      fi
546
    done
547
}
548

  
549
#-------------------------------------------------
550
# ECLIPSE .project
551
#-------------------------------------------------
552

  
553
eclipse() {
554
  echo "***********************************"
555
  echo "Eclipse:eclipse"
556
  echo "***********************************"
557

  
558
  DIR_BASE=`pwd`
559

  
560
  for i in $PROJECTS_TO_BUILD
561
    do
562
      cd $i
563
      echo "-----------------"
564
      echo "Cambiando a"....$i
565
      echo "Ejecutando mvn eclipse:eclipse"
566
      mvn eclipse:eclipse;
567
      cd ..
568
    done
569
}
570

  
571

  
572

  
573
#-------------------------------------------------
574
# COMMANDS
575
#-------------------------------------------------
576

  
577
if [ "$1" = "-all" ] ; then
578
  clean
579
  update
580
  increaseBuildnumber
581
  unpackDepman
582
  installAndPackage
583
  copyToPackageFolder
584
  commit
585
  tagsGeneration
586
  loadBuildNumber
587
  loadPluginVersion
588
  ticketGeneration
589
fi
590

  
591
if [ "$1" = "-basicinstall" ] ; then
592
  installAndPackage
593
fi
594

  
595
if [ "$1" = "-install" ] ; then
596
  unpackDepman
597
  installAndPackage
598
  copyToPackageFolder
599
fi
600

  
601
if [ "$1" = "-clean" ] ; then
602
  clean
603
fi
604

  
605
if [ "$1" = "-update" ] ; then
606
  update
607
fi
608

  
609
if [ "$1" = "-buildnumber" ] ; then
610
  increaseBuildNumber
611
fi
612

  
613
if [ "$1" = "-commit" ] ; then
614
  commit
615
fi
616

  
617
if [ "$1" = "-ticket" ] ; then
618
 loadBuildNumber
619
 loadPluginVersion
620
 ticketGeneration
621
fi
622

  
623
if [ "$1" = "-tags" ] ; then
624
 tagsGeneration
625
fi 
626

  
627
if [ "$1" = "-changeversion" ] ; then
628
 changeProjectVersion $2 $3
629
fi
630

  
631
if [ "$1" = "-eclipse" ] ; then
632
 eclipse
633
fi
634

  
635
if [ "$1" != "-upload" -a "$1" != "-all" ] ; then
636
  exit
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff