Statistics
| Revision:

gvsig-raster / org.gvsig.raster / trunk / org.gvsig.raster / package.sh @ 2011

History | View | Annotate | Download (12.6 KB)

1
#/bin/sh
2

    
3
if [ "$1" = "--help" ] ; then
4
   echo "Usage: First parameter:"
5
   echo "          -update"
6
   echo "          -buildnumber"
7
   echo "          -install"
8
   echo "          -package: crear paquetes"
9
   echo "          -upload: subir al repositorio"
10
   echo "          -tags: crear tags buildNumber_VERSION"
11
   echo "          -commit: subir build number"
12
   echo "          -ticket: crear fichero de texto con las URLS de los índices para el ticket" 
13
   echo "Para hacer nuevo empaquetado"
14
   echo "   1-Comprobar variables VERSION, FIX_VERSION, RELEASE, PACKAGE_DIRECTORY, URL, URL_TAGS, USER y PASS. Ojo! Si el directorio para el plugin no está creado en pool dará un error"
15
   echo "   2-Si se ha metido algún paquete nuevo actualizar la variable PROJECT y PLUGINS o ARCH_DEP_PLUGIN si fuera necesario"
16
   echo "   3-Ejecutar ./package.sh -clean para limpiar"
17
   echo "   4-(Descomprimir depman.tgz)"
18
   echo "   5-Ejecutar ./package.sh -update para actualizar los proyectos"
19
   echo "   6-Ejecutar ./package.sh -buildnumber para actualizar los build number"
20
   echo "   7-Ejecutar ./package.sh -install para instalar los proyectos en ~/.gvsig-devel.properties y empaquetar"
21
   echo "   8-(Testear lo instalado y comprobar que en tmp están todos los paquetes)"
22
   echo "   9-Ejecutar ./package.sh -upload para subir a URL"
23
   echo "   10-Ejecutar ./package.sh -commit para subir los buildnumber"
24
   echo "   11-Ejecutar ./package.sh -tags para crear tags en URL_TAGS"
25
   echo "   12-Ejecutar ./package.sh -ticket para generar el fichero con las urls de los índices"
26
   echo "Para revertir cambios del SVN ./package.sh -revert"
27
   exit
28
fi
29

    
30
VERSION=2.1.0
31
FIX_VERSION=SNAPSHOT
32
RELEASE=testing
33
PACKAGE_PREFIX=gvSIG-desktop
34
URL=https://devel.gvsig.org/download/projects/Raster/pool/
35
URL_TAGS=https://devel.gvsig.org/svn/gvsig-raster/
36
PACKAGE_DIRECTORY=/tmp
37
PATH_TICKET=/tmp/ticket.txt
38
USER=nbrodin
39
PASS=
40

    
41
PLATFORM="linux"
42
COMPILER="gcc4"
43
ARCH="i386"
44
DISTRIBUTION="all"
45
TYPE="dynamic"
46

    
47
PLATFORM_B="win"
48
COMPILER_B="vs8"
49
DISTRIBUTION_B="nt"
50

    
51
#pool packages
52
MAIN_PACKAGE=0 #Posición 1 obligatoria tilecache en ARCH_DEP_PLUGINS
53

    
54
#Plugin list
55
PLUGINS="org.gvsig.raster.tools/org.gvsig.raster.tools.app.basic 
56
org.gvsig.raster.multifile/org.gvsig.raster.multifile.app.multifileclient
57
org.gvsig.raster.reproject/org.gvsig.raster.reproject.app.reprojectclient
58
org.gvsig.raster.wmts/org.gvsig.raster.wmts.app.wmtsclient 
59
org.gvsig.raster.wms/org.gvsig.raster.wms.app.wmsclient 
60
org.gvsig.raster.wcs/org.gvsig.raster.wcs.app.wcsclient 
61
org.gvsig.raster.netcdf/org.gvsig.raster.netcdf.app.netcdfclient 
62
org.gvsig.raster.postgis/org.gvsig.raster.postgis.app.postgisrasterclient
63
org.gvsig.raster.osm/org.gvsig.raster.osm.app.osmclient
64
org.gvsig.raster.georeferencing/org.gvsig.raster.georeferencing.app.georeferencingclient"
65

    
66
ARCH_DEP_PLUGINS="org.gvsig.raster.tilecache/org.gvsig.raster.tilecache.app
67
org.gvsig.raster.gdal/org.gvsig.raster.gdal.app
68
org.gvsig.raster.ermapper/org.gvsig.raster.ermapper.app
69
org.gvsig.raster.lizardtech/org.gvsig.raster.lizardtech.app"
70
 
71
#eclipse projects
72
PROJECTS="org.gvsig.raster.cache 
73
org.gvsig.raster 
74
org.gvsig.raster.gdal 
75
org.gvsig.raster.tilecache 
76
org.gvsig.raster.tools 
77
org.gvsig.raster.multifile
78
org.gvsig.raster.reproject
79
org.gvsig.raster.wmts 
80
org.gvsig.raster.wms 
81
org.gvsig.raster.wcs 
82
org.gvsig.raster.ermapper 
83
org.gvsig.raster.lizardtech 
84
org.gvsig.raster.netcdf 
85
org.gvsig.raster.postgis
86
org.gvsig.raster.osm
87
org.gvsig.raster.georeferencing"
88

    
89

    
90
CLASSIFIER=$PLATFORM"-"$DISTRIBUTION"-"$COMPILER"-"$ARCH"-"$TYPE
91

    
92
INSTALL_PARAMS="install -Dnative-platform="$PLATFORM" -Dnative-compiler="$COMPILER" -Dnative-arch="$ARCH" -Dnative-distribution="$DISTRIBUTION" -Dlibrary-type="$TYPE" -Dnative-classifier="$CLASSIFIER" -Dnative_classifier="$CLASSIFIER" -Dmaven.test.skip"
93

    
94
CLASSIFIER_B=$PLATFORM_B"-"$DISTRIBUTION_B"-"$COMPILER_B"-"$ARCH"-"$TYPE
95

    
96
INSTALL_PARAMS_PLATFORM_B="install -Dnative-platform="$PLATFORM_B" -Dnative-compiler="$COMPILER_B" -Dnative-arch="$ARCH" -Dnative-distribution="$DISTRIBUTION_B" -Dlibrary-type="$TYPE" -Dnative_classifier="$CLASSIFIER_B" -Dnative-classifier="$CLASSIFIER_B" -Dmaven.test.skip"
97

    
98
#-------------------------------------------------
99
#Gets the number of the version
100
#$1: Project name
101
#-------------------------------------------------
102
getVersionProject( ) {
103
  c=-1;
104
  for i in $PLUGINS
105
    do
106
      let "c=c+1";
107
      AUX=`echo $i | grep "$1\/"`; 
108
      if [ "$AUX" != "" ]; then
109
        echo ${VER[c]}
110
        return;
111
      fi
112
    done
113
  c=-1;
114
  for i in $ARCH_DEP_PLUGINS
115
    do
116
      let "c=c+1";
117
      AUX=`echo $i | grep "$1\/"`; 
118
      if [ "$AUX" != "" ]; then
119
        echo ${VER_ARCH_DEP[c]}
120
        return;
121
      fi
122
    done
123
  echo ${VER_ARCH_DEP[MAIN_PACKAGE]}
124
}
125

    
126
#-------------------------------------------------
127
#Loads the array of versions
128
#Be careful. It has to be called after package generation
129
#-------------------------------------------------
130
loadVersion() {
131
  cont=0;
132
  CURRENT_DIR=`pwd`
133
  for i in $PLUGINS
134
   do
135
     if [ -d $i ]; then
136
       cd $i
137
       if [ -f buildNumber.properties ]; then
138
         VER[cont]=`cat buildNumber.properties | grep "buildNumber=" | cut -d'=' -f2`
139
	 #echo "===>>>>$i---->${VER[cont]}"
140
         let "cont=cont+1"; 
141
       fi
142
     fi
143
     cd $CURRENT_DIR
144
   done
145

    
146
  cont=0;
147
  for i in $ARCH_DEP_PLUGINS
148
   do
149
     if [ -d $i ]; then
150
       cd $i
151
       if [ -f buildNumber.properties ]; then
152
         VER_ARCH_DEP[cont]=`cat buildNumber.properties | grep "buildNumber=" | cut -d'=' -f2`
153
	 #echo "===>>>*$i---->${VER_ARCH_DEP[cont]}"
154
         let "cont=cont+1"; 
155
       fi
156
     fi
157
     cd $CURRENT_DIR
158
   done
159
}
160

    
161

    
162
#-------------------------------------------------
163
if [ "$1" = "-update" ] ; then
164
 for i in $PROJECTS
165
    do
166
      cd $i
167
      echo "-----------------"
168
      echo "Cambiando a"....$i
169
      echo "Ejecutando svn update "
170
      svn update;
171
      cd ..
172
    done
173
fi
174

    
175
#-------------------------------------------------
176
if [ "$1" = "-buildnumber" ] ; then
177
  CURRENT_DIR=`pwd`
178
  ALL_PLUGINS=$PLUGINS" "$ARCH_DEP_PLUGINS
179
  for i in $ALL_PLUGINS
180
   do
181
     if [ -d $i ]; then
182
       cd $i
183
       if [ -f buildNumber.properties ]; then
184
         CURRENT_VER=`cat buildNumber.properties | grep "buildNumber=" | cut -d'=' -f2`
185
         NEXT_VER=$CURRENT_VER
186
         let "NEXT_VER=NEXT_VER+1";
187
         echo "Changin buildNumber "$CURRENT_VER" by "$NEXT_VER" IN "$i
188
         (cat buildNumber.properties | sed -e "s/buildNumber=${CURRENT_VER}/buildNumber=${NEXT_VER}/g") > tmp
189
         rm buildNumber.properties
190
         mv tmp buildNumber.properties
191
       fi
192
     fi
193
     cd $CURRENT_DIR
194
   done
195
fi
196

    
197

    
198

    
199
#-------------------------------------------------
200
if [ "$1" = "-commit" ] ; then
201
 for i in $PROJECTS
202
    do
203
      cd $i
204
      echo "-----------------"
205
      echo "Cambiando a"....$i
206
      echo "Ejecutando svn commit "
207
      svn commit * -m "new build number $PVERSION";
208
      cd ..
209
    done
210
fi
211
#-------------------------------------------------
212

    
213
if [ "$1" = "-clean" ] ; then
214

    
215
  
216
  echo "***********************************"
217
  echo "Clean"
218
  echo "***********************************"
219

    
220
  for i in $PROJECTS
221
    do
222
      cd $i
223
      echo "-----------------"
224
      echo "Cambiando a"....$i
225
      echo "Ejecutando clean"
226
      mvn clean
227
      cd ..
228
    done
229

    
230
fi
231

    
232
#-------------------------------------------------
233

    
234
if [ "$1" = "-install" ] ; then
235

    
236
  
237
  echo "***********************************"
238
  echo "Install"
239
  echo "***********************************"
240

    
241
  DIR_BASE=`pwd`
242

    
243
  #------Install and Package---------
244

    
245
  for i in $PROJECTS
246
    do
247
      cd $i
248
      echo "-----------------"
249
      echo "Cambiando a"....$i
250
      echo "Ejecutando mvn "$INSTALL_PARAMS
251
      mvn $INSTALL_PARAMS;
252
      cd ..
253
    done
254

    
255

    
256
  for i in $ARCH_DEP_PLUGINS #Plugins architecture dependent
257
    do
258
      cd $i
259
      echo "-----------------"
260
      echo "Cambiando a"....$i
261
      echo "Ejecutando mvn "$INSTALL_PARAMS
262
      mvn $INSTALL_PARAMS_PLATFORM_B;
263
      cd $DIR_BASE
264
   done
265

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

    
268
   for i in $PLUGINS 
269
    do
270
      cd $i/target
271
      echo "-----------------"
272
      echo "Cambiando a"....$i/target
273
      echo "Copiando "$i" a "$PACKAGE_DIRECTORY
274
      pad=`echo $i | cut -d/ -f2`
275
      mkdir $PACKAGE_DIRECTORY/$pad
276
      rename 's/\.zip$//' *.gvspkg.zip  #Elimina los .zip si los gvspkg están como .zip
277
      cp $PACKAGE_PREFIX* $PACKAGE_DIRECTORY/$pad
278
      cd $DIR_BASE
279
   done
280

    
281

    
282
   for i in $ARCH_DEP_PLUGINS #Plugins architecture dependent
283
    do
284
      cd $i/target
285
      echo "-----------------"
286
      echo "Cambiando a"....$i/target
287
      echo "Copiando "$i" a "$PACKAGE_DIRECTORY
288
      pad=`echo $i | cut -d/ -f2`
289
      mkdir $PACKAGE_DIRECTORY/$pad
290
      rename 's/\.zip$//' *.gvspkg.zip  #Elimina los .zip si los gvspkg están como .zip
291
      cp $PACKAGE_PREFIX* $PACKAGE_DIRECTORY/$pad
292
      cd $DIR_BASE
293
   done
294

    
295
fi
296

    
297
#-------------------------------------------------
298

    
299
loadVersion
300

    
301
#-------------------------------------------------
302
#SOLO TEST
303
#-------------------------------------------------
304
if [ "$1" = "-revert" ] ; then
305
 for i in $PROJECTS
306
    do
307
      cd $i
308
      echo "-----------------"
309
      echo "Cambiando a"....$i
310
      echo "Ejecutando svn update "
311
      svn revert --recursive .
312
      cd ..
313
    done
314
fi
315

    
316
#-------------------------------------------------
317
#SOLO TEST
318
#-------------------------------------------------
319
if [ "$1" = "-ticket" ] ; then
320
 rm $PATH_TICKET 2> /dev/null
321
 cont=0;
322
 for i in $PLUGINS
323
    do
324
      package=`echo $i | cut -d/ -f3`
325
      if [ "$package" == "" ] ; then 
326
          package=`echo $i | cut -d/ -f2`
327
      fi
328
      echo "$URL$package/gvSIG-desktop-$VERSION-$package-$VERSION-$FIX_VERSION-${VER[$cont]}-$RELEASE-all-all-j1_5.gvspki" >> $PATH_TICKET
329
      echo "" >> $PATH_TICKET
330
      let "cont=cont+1";
331
    done
332
 cont=0;
333
 for i in $ARCH_DEP_PLUGINS
334
    do
335
      package=`echo $i | cut -d/ -f3`
336
      if [ "$package" == "" ] ; then 
337
          package=`echo $i | cut -d/ -f2`
338
      fi
339
      echo "$URL$package/gvSIG-desktop-$VERSION-$package-$VERSION-$FIX_VERSION-${VER_ARCH_DEP[$cont]}-$RELEASE-lin-x86-j1_5.gvspki" >> $PATH_TICKET
340
      echo "" >> $PATH_TICKET
341
      echo "$URL$package/gvSIG-desktop-$VERSION-$package-$VERSION-$FIX_VERSION-${VER_ARCH_DEP[$cont]}-$RELEASE-win-x86-j1_5.gvspki" >> $PATH_TICKET
342
      echo "" >> $PATH_TICKET
343
      let "cont=cont+1";
344
    done
345
  echo "Creado fichero de URLs en "$PATH_TICKET
346
fi
347

    
348
#-------------------------------------------------
349
if [ "$1" = "-tags" ] ; then
350

    
351
 echo "***********************************"
352
 echo "Creating tags"
353
 echo "***********************************"
354

    
355

    
356
 for i in $PROJECTS
357
   do
358
     PVERSION=`getVersionProject $i`
359
     #echo "svn copy $URL_TAGS$i/trunk $URL_TAGS$i/tags/buildNumber_$PVERSION -m \"Tag build $PVERSION\""
360
     svn copy $URL_TAGS$i/trunk $URL_TAGS$i/tags/buildNumber_$PVERSION -m "Tag build $PVERSION"
361
   done 
362
fi 
363

    
364

    
365

    
366
#-------------------------------------------------
367
if [ "$1" != "-upload" ] ; then
368
  exit
369
fi  
370

    
371
echo "***********************************"
372
echo "Uploading"
373
echo "***********************************"
374

    
375
CURRENT_DIRECTORY=`pwd`;
376
echo "Cambiando a..."$PACKAGE_DIRECTORY
377
cd $PACKAGE_DIRECTORY
378

    
379
cont=0;
380
for i in $PLUGINS
381
do
382
package=`echo $i | cut -d/ -f3`
383
if [ "$package" == "" ] ; then 
384
package=`echo $i | cut -d/ -f2`
385
fi
386
/usr/bin/expect <<EOD
387
spawn cadaver $URL
388
expect (y/n)
389
send y\r
390
expect dav:/download/projects/Raster/pool/>
391
send "cd $package\r"
392
expect $package/>
393
send "lcd $package\r"
394
expect $package/>
395
send "put $PACKAGE_PREFIX-$VERSION-$package-$VERSION-$FIX_VERSION-${VER[$cont]}-$RELEASE-all-all-j1_5.gvspki\r"
396
expect "Nombre de usuario:"
397
send $USER\r
398
expect "Contraseña:"
399
send $PASS\r
400
expect $package/>
401
send "put $PACKAGE_PREFIX-$VERSION-$package-$VERSION-$FIX_VERSION-${VER[$cont]}-$RELEASE-all-all-j1_5.gvspkg\r"
402
expect $package/>
403
send quit\r
404
expect "cerrada."
405
EOD
406
let "cont=cont+1";
407
done
408

    
409

    
410
cont=0;
411
for i in $ARCH_DEP_PLUGINS
412
do
413
pckgad=`echo $i | cut -d/ -f2` #Packages architecture dependent
414
/usr/bin/expect <<EOD
415
spawn cadaver $URL
416
expect (y/n)
417
send y\r
418
expect dav:/download/projects/Raster/pool/>
419
send "cd $pckgad\r"
420
expect $pckgad/>
421
send "lcd $pckgad\r"
422
expect $pckgad/>
423
send "put $PACKAGE_PREFIX-$VERSION-$pckgad-$VERSION-$FIX_VERSION-${VER_ARCH_DEP[$cont]}-$RELEASE-lin-x86-j1_5.gvspki\r"
424
expect "Nombre de usuario:"
425
send $USER\r
426
expect "Contraseña:"
427
send $PASS\r
428
expect $pckgad/>
429
send "put $PACKAGE_PREFIX-$VERSION-$pckgad-$VERSION-$FIX_VERSION-${VER_ARCH_DEP[$cont]}-$RELEASE-lin-x86-j1_5.gvspkg\r"
430
expect $pckgad/>
431
send "put $PACKAGE_PREFIX-$VERSION-$pckgad-$VERSION-$FIX_VERSION-${VER_ARCH_DEP[$cont]}-$RELEASE-win-x86-j1_5.gvspkg\r"
432
expect $pckgad/>
433
send "put $PACKAGE_PREFIX-$VERSION-$pckgad-$VERSION-$FIX_VERSION-${VER_ARCH_DEP[$cont]}-$RELEASE-win-x86-j1_5.gvspki\r"
434
expect $pckgad/>
435
send quit\r
436
expect "cerrada."
437
EOD
438
let "cont=cont+1";
439
done
440

    
441
cd $CURRENT_DIRECTORY