]> git.llucax.com Git - z.facultad/75.08/llamadas.git/blob - BUGAFINSTAL
Progress y dos directorios que deben estar para que todo funcione
[z.facultad/75.08/llamadas.git] / BUGAFINSTAL
1 #!/bin/bash 
2 # vim: set softtabstop=4 tabstop=4 
3
4 ################# Funciones ###########################
5
6 # Devuelve 0 si la ruta fue cambiada y 1 si quedo por defecto
7 function cambiaruta() {
8         echo ""
9         echo "Nombre del directorio $1 es: ($2)"
10         echo "Si desea modificarlo ingrese la ruta completa deseada y luego presione ENTER"
11         echo "de lo contrario presione ENTER."
12         echo ""
13         read DIRSELECTED
14         if [ -n "$DIRSELECTED" ]; then
15                 return 0
16         else 
17                 return 1
18         fi
19 }
20
21 # Devuelve 0 si el script y el OS matchean, 1 otherwise
22 function checkOS() {
23         if echo $0 | egrep -q 'AFINSTAL$'; then
24                 SCRIPTOS="Linux"
25         fi
26         if echo $0 | egrep -q 'AFINSTAM$'; then
27                 SCRIPTOS="Mac"
28         fi
29         if echo $0 | egrep -q 'AFINSTAW$'; then
30                 SCRIPTOS="Windows"
31         fi
32
33         if [ "$SISOPTP" != "$SCRIPTOS" ]; then
34                 cat<<MARCA
35
36 ### ERROR ###
37 Este proceso de instalacion es para $SISOPTP y su sistema operativo 
38 es $CURSIS. Solicite a su proveedor la version adecuada e inicie 
39 nuevamente el proceso de instalacion.
40
41 MARCA
42         return 1
43         else return 0
44         fi
45 }
46
47 # Devuelve 0 si se encuentra Perl instalado, 1 otherwise
48 function checkPerl() {
49         if [ "perl" = "`type perl | sed s/\"perl is .*\"/\"perl\"/`" ]; then 
50                 return 0;
51         else
52         cat <<MARCA
53 >> Verificando la existencia de PERL .. FAILED!
54
55 "ERROR!!!"
56 "Este proceso de instalación solo puede ser"
57 "ejecutado si Perl 5 o superior ya esta instalado"
58
59 "Efectúe a instalación de Perl"
60 "e inicie nuevamente el procedimiento de instalación."
61 MARCA
62         return 1
63         fi
64 }
65
66 # Permite seleccionar que componentes se instalaran
67 function selectModules() {
68         PS3="Seleccione un componente:"
69         choices="AFIMONIO AFICONF ANTIFRAUDE"
70         key="S"
71         toinstall=""
72         while [ "$key" = "S" ] && [ -n "$choices" ]
73         do
74                 clear
75                 cat <<MARCA
76
77 ***********************************************************
78 *  SELECCION de COMPONENTES                               *
79 *  Por favor seleecione los componentes a ser instalados  *
80 *  de a uno por vez, a traves del siguiente menu:         *
81 ***********************************************************
82 >> Se instalaran: $toinstall
83
84 MARCA
85                 select REPLY in $choices
86                 do
87                         case $REPLY in
88                         "AFIMONIO" ) selected="AFIMONIO";;
89                         "AFICONF" ) selected="AFICONF";;
90                         "ANTIFRAUDE" ) selected="ANTIFRAUDE";;
91                         * ) selected="INVALID";;
92                         esac
93                 break
94                 done
95
96                 if [ $selected != "INVALID" ]; then
97                         choices=`echo $choices | sed s/$selected//`
98                         if [ -z "$toinstall" ]; then toinstall=$selected
99                         else toinstall="$toinstall,$selected"
100                         fi
101         
102                         if [ -n "$choices" ]; then
103                                 echo
104                                 echo "Se instalara [$selected], si desea seleccionar"
105                                 echo "otro componente presione \"S\" y luego ENTER, de lo contrario"
106                                 echo "presione solo ENTER para comenzar a instalar los componentes"
107                                 read key
108                                 if [ "$key" = "s" ]; then key="S"
109                                 fi
110                         fi
111                 fi
112         done
113         if [ -n "$key" ]; then echo
114         fi
115 cat <<MARCA
116 ***********************************************************
117 * La seleccion de componentes ha finalizado. Se procedera *
118 * con la instalacion.                                     *
119 ***********************************************************
120 Componentes a instalar: [ $toinstall ]
121 MARCA
122 }
123
124 ################### MAIN SCRIPT CODE ###################
125 clear
126 SISOPTP=$(uname)
127 CURRDIR=`echo ${0%/*} | sed s%'\.'%$PWD%`
128
129 # [STEP1] Verifico el OS vs SCRIP y la presencia de PERL
130 echo ">> Verificando version del software contra el OS.."
131 checkOS
132 if [ "$?" -ne 0 ]; then exit 1
133 fi
134 echo ">> Verificando la existencia de PERL.."
135 checkPerl
136 if [ "$?" -ne 0 ]; then exit 1
137 fi
138 echo ">> Proceso de instalacion para $SISOPTP iniciado."
139 echo ">> Presione ENTER para continuar"
140 read key
141
142 # [STEP2] License Agreements
143 cat <<MARCA
144 ***************************************************************
145 *                                                             *
146 *            Proceso de instalacion de "Antifraude"           *
147 *              Copyright TPSistemasOp (c) 2004                *
148 *                                                             *
149 ***************************************************************
150  A T E N C I O N: Al instalar Antifraude UD. expresa estar
151  en un todo de acuerdo con los terminos y condiciones del 
152  ACUERDO DE LICENCIA DE SOFTWARE incluido en este paquete.
153  
154  Si desea cancelar este proceso oprima 'F' y luego ENTER.
155  Para continuar oprima ENTER.
156 MARCA
157 key="something"
158 while [ "$key" != "" ]; do
159 read key
160 if [ "$key" = "F" ]; then
161         echo ">> Proceso de instalacion cancelado"
162         exit 0
163 fi
164 done
165
166 # [STEP3] Chequeamos si hay componentes ya instalados
167 if [ "2" = "3" ]; then
168         #busco paquetes instalados. Leo afinstal.conf para ver que hay
169         #como el archivo existe, tiene que tener alguna info almacenada..
170         instdir=`cat $afinstal | grep -n INSTDIR | grep 1 | sed s/\.\*\=\ //`
171         confdir=`cat $afinstal | grep -n CONFDIR | grep 2 | sed s/\.\*\=\ //`
172         #Busco los binarios
173         comp=0
174         anti=0
175         afic=0
176         afim=0  
177         bindir=`cat $afinstal | grep -n  BINDIR | grep 11 | sed s/\.\*\=\ //`
178         logdir=`cat $afinstal | grep -n  LOGDIR | grep 12 | sed s/\.\*\=\ //`
179         logname=`cat $afinstal | grep -n LOGNAME | grep 13 | sed s/\.\*\=\ //`
180         logsize=`cat $afinstal | grep -n  BINDIR | grep 14 | sed s/\.\*\=\ //`
181
182         # Si habia algo instalado, la informacion del los directorios quedo
183         # almacenada, pues es igual para todos los scripts. Excepto el directorio de
184         # datos para antifraude.
185         if [ ! -f "$bindir""antifraude.pl" ]; then
186                 #instalo antifraude porque no existe
187                 echo "Instalando Antifraude..."
188                 anti=1
189                 cp "$instdir/antifraude.pl" "$bindir/antifraude.pl"
190         fi
191         if [ ! -f "$bindir""aficonf" ]; then
192                 #instalo aficonf porque no existe
193                 echo "Instalando Aficonf..."
194                 afic=1
195         cp "$instdir/aficonf" "$bindir/aficonf"
196         fi
197         if [ ! -f "$bindir""afimonio" ]; then
198                 #instalo afimonio porque no existe
199                 echo "Instalando Afimonio..."
200                 afim=1
201                 cp "$instdir/afimonio" "$bindir/afimonio"
202         fi
203
204         #hay que loguear lo que se instalo
205         comp=$(($anti + $afic + $afim))
206         if [ $anti != 0 ]; then
207                 echo "Ingrese la ruta completa para el directorio de datos"
208                 read datadir
209                 while [ ! -d "$datadir" ]; do
210                         echo "La ruta especificada no existe, ingrese un directorio existente"
211                         read datadir
212                 done
213                 echo "Ingrese tamaño máximo de datos"
214                 read datasize
215                 fecha=$(date)
216                 cat "$confdir/afinstal.conf" | sed "10s/.*/Comando antifraude.pl/" > "$confdir/afinstal.conf"
217                 cat "$confdir/afinstal.conf" | sed "11s(.*(BINDIR = $bindir(" > "$confdir/afinstal.conf"
218                 cat "$confdir/afinstal.conf" | sed "12s(.*(LOGDIR = $logdir(" > "$confdir/afinstal.conf"
219                 cat "$confdir/afinstal.conf" | sed "13s(.*(LOGNAME = $logname(" > "$confdir/afinstal.conf"
220                 cat "$confdir/afinstal.conf" | sed "14s(.*(LOGSIZE = $logsize(" > "$confdir/afinstal.conf"
221                 cat "$confdir/afinstal.conf" | sed "15s(.*(DATADIR = $datadir(" > "$confdir/afinstal.conf"
222                 cat "$confdir/afinstal.conf" | sed "16s(.*(DATASIZE = $datasize(" > "$confdir/afinstal.conf"
223                 cat "$confdir/afinstal.conf" | sed "17s(.*(USERID = $USER(" > "$confdir/afinstal.conf"
224                 cat "$confdir/afinstal.conf" | sed "18s(.*(FECINS = $fecha(" > "$confdir/afinstal.conf"
225         fi
226         if [ $afic != 0 ]; then
227                 fecha=$(date)
228                 cat "$confdir/afinstal.conf" | sed "20s/.*/Comando aficonf/" > "$confdir/afinstal.conf"
229                 cat "$confdir/afinstal.conf" | sed "21s(.*(BINDIR = $bindir(" > "$confdir/afinstal.conf"
230                 cat "$confdir/afinstal.conf" | sed "22s(.*(LOGDIR = $logdir(" > "$confdir/afinstal.conf"
231                 cat "$confdir/afinstal.conf" | sed "23s(.*(LOGNAME = $logname(" > "$confdir/afinstal.conf"
232                 cat "$confdir/afinstal.conf" | sed "24s(.*(LOGSIZE = $logsize(" > "$confdir/afinstal.conf"
233                 cat "$confdir/afinstal.conf" | sed "25s(.*(USERID = $USER(" > "$confdir/afinstal.conf"
234                 cat "$confdir/afinstal.conf" | sed "26s(.*(FECINS = $fecha(" > "$confdir/afinstal.conf"
235         fi
236         if [ $afim != 0 ]; then
237                 fecha=$(date)
238                 cat "$confdir/afinstal.conf" | sed "30s/.*/Comando afimonio/" > "$confdir/afinstal.conf"
239                 cat "$confdir/afinstal.conf" | sed "31s(.*(BINDIR = $bindir(" > "$confdir/afinstal.conf"
240                 cat "$confdir/afinstal.conf" | sed "32s(.*(LOGDIR = $logdir(" > "$confdir/afinstal.conf"
241                 cat "$confdir/afinstal.conf" | sed "33s(.*(LOGNAME = $logname(" > "$confdir/afinstal.conf"
242                 cat "$confdir/afinstal.conf" | sed "34s(.*(LOGSIZE = $logsize(" > "$confdir/afinstal.conf"
243                 cat "$confdir/afinstal.conf" | sed "35s(.*(USERID = $USER(" > "$confdir/afinstal.conf"
244                 cat "$confdir/afinstal.conf" | sed "36s(.*(FECINS = $fecha(" > "$confdir/afinstal.conf"
245         fi
246         if [ $comp == 0 ]; then
247
248         #busco los datos
249         fecha1=`cat $afinstal | grep -n FECINS | grep 18 | sed s/\.\*\=\ //`
250         fecha2=`cat $afinstal | grep -n FECINS | grep 26 | sed s/\.\*\=\ //`
251         fecha3=`cat $afinstal | grep -n FECINS | grep 36 | sed s/\.\*\=\ //`
252         usu1=`cat $afinstal | grep -n USERID | grep 17 | sed s/\.\*\=\ //`
253         usu2=`cat $afinstal | grep -n USERID | grep 25 | sed s/\.\*\=\ //`
254         usu3=`cat $afinstal | grep -n USERID | grep 35 | sed s/\.\*\=\ //`
255
256 cat<<MARCA
257 ***************************************************************
258 * Se encuentran instalados los siguientes componentes:        *
259 * Antifraude.pl instalado el $fecha1 por $usu1 *
260 * Aficonf instalado el $fecha2 por $usu2 *
261 * Antifraude.pl instalado el $fecha3 por $usu3  *
262 *                                                             *
263 *               Copyright TPSistemasOp (c) 2004               *
264 ***************************************************************
265
266 Proceso de instalación cancelado.
267 MARCA
268         exit 0
269         fi
270 fi
271
272 # [STEP4] Seleecion de los componentes a instalar
273 # TODO: tener en cuenta los que ya estan
274 selectModules
275
276 # [STEP5] Definir paths de cada componente e instalarlo guardando
277 #         la informacion pertinente en el afinstal.conf
278 CONFDIR="${CURRDIR}/conf"
279 INSTDIR="${CURRDIR}/inst"
280 CONFFILE="${CONFDIR}/afinstal.conf"
281
282 # Si no existe el afinstal.conf, lo creo y agrego las primeras 2 lineas
283 if [ ! -f "$CONFFILE" ]; then
284         touch "$CONFFILE"
285         echo "INSTDIR = $INSTDIR" >> $CONFFILE
286         echo "CONFDIR = $CONFDIR" >> $CONFFILE
287         for n in `seq 3 51`; do
288                 echo "" >> $CONFFILE
289         done            
290         exit 0
291 fi
292
293 exit 0
294
295 linea=10
296 i=0
297 fecha=$(date)
298
299 for comando in antifraude.pl afimonio aficonf ; do 
300                 op="a" 
301                 while [ -n "$op" ]; do 
302                         #Almance el path actual 
303                         BINDIR="${CURDIR}/bin"
304                         DATADIR="${CURDIR}/llamadas"
305                         LOGDIR="${CURDIR}/log"
306                         
307                         echo "La ruta del directorio de instalación es: ($INSTDIR)"
308                         echo "La ruta del directorio de configuración es: ($CONFDIR)"
309                         echo "La ruta del directorio de ejecutables es: ($BINDIR)"
310                         DIRSELECTED=""
311                         if cambiaruta "ejecutables" $BINDIR ; then
312                                 BINDIR=$DIRSELECTED
313                         fi
314                         if cambiaruta "de datos" $DATADIR ; then
315                                 DATADIR=$DIRSELECTED
316                         fi
317                         if cambiaruta "de log" $LOGDIR ; then
318                                 LOGDIR=$DIRSELECTED
319                         fi
320                         echo "Nombre del archivo de log: (${comando}.log)"
321                         echo "Si desea conservar este nombre presione ENTER, de lo "
322                         echo "contrario ingrese un nuevo nombre y luego ENTER"
323                         read LOGNAME
324                         if [ -z "$logname" ]; then
325                                 LOGNAME="${comando}.log"
326                         fi
327                         echo "Tamaño máximo para el archivo <$LOGNAME> (Mb): 20Mb"
328                         echo "Si desea conservar este valor presione ENTER, de lo "
329                         echo "contrario ingrese un nuevo valor y luego ENTER"
330                         read LOGSIZE
331                         if [ -z "$LOGSIZE" ]; then
332                                 LOGSIZE=20
333                         fi
334
335                         cat <<MARCA 
336                         "               Parametros de instalación de $comando           "
337                         "       ==========================================      "
338                         " Nombre del directorio de instalación: $INSTDIR                "
339                         " Nombre del directorio de ejecutables: $BINDIR                 "
340                         " Nombre del directorio de datos: $DATADIR                              "
341                         " Nombre del directorio de configuración: $CONFDIR              "
342                         " Directorio y nombre del archivo de log: $LOGDIR/$LOGNAME"
343                         " Tamaño máximo para el archivo de log: $LOGSIZE                "
344
345                         Si los datos ingresados son correctos oprima solamente ENTER, si desea
346                         modificar alguno de ellos oprima cualquier otra tecla y luego ENTER.
347 MARCA
348                         read op         
349
350                         echo "Si desea iniciar la instalación de <$comando>, oprima"
351                         echo "solamente ENTER, si desea cancelar el proceso oprima"
352                         echo "cualquier otra tecla y luego ENTER."
353
354                         read op
355
356                         if [ -n "$op" ]; then
357                                 echo "Proceso de instalación cancelado"
358                                 exit 0
359                         fi
360
361                         # Cremos los directorios para este comando
362                         echo "Creando Estructura de Directorio...."
363                         mkdir -p $BINDIR
364                         mkdir -p $DATADIR
365                         mkdir -p $DATADIR/{aprocesar,enproceso,rechazadas,procesadas}
366                         mkdir -p $LOGDIR
367                         touch $LOGDIR/$LOGNAME
368                         echo "Moviendo Archivos....."
369                         cp $INSTDIR/$comando $BINDIR
370                         #cp $INSTDIR/umbrales.param $CONFDIR
371                         #cp $INSTDIR/*.data $DATADIR/aprocesar
372                         
373                         numlinea=$(($linea+$i))
374                         cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s/.*/Comando $comando/" > "$CONFDIR/afinstal.conf"
375                         i=$(($i+1))
376                         numlinea=$(($linea+$i))
377                         cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(BINDIR = $BINDIR(" > "$CONFDIR/afinstal.conf"
378                         i=$(($i+1))
379                         numlinea=$(($linea+$i))
380                         cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(LOGDIR = $LOGDIR(" > "$CONFDIR/afinstal.conf"
381                         i=$(($i+1))
382                         numlinea=$(($linea+$i))
383                         cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(LOGNAME = $LOGNAME(" > "$CONFDIR/afinstal.conf"
384                         i=$(($i+1))
385                         numlinea=$(($linea+$i))
386                         cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(LOGSIZE = $LOGSIZE(" > "$CONFDIR/afinstal.conf"
387                         if [ "$FILE" = "antifraude.pl" ]; then
388                                 i=$(($i+1))
389                                 numlinea=$(($linea+$i))
390                                 cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(DATADIR = $DATADIR(" > "$CONFDIR/afinstal.conf"
391                                 i=$(($i+1))
392                                 numlinea=$(($linea+$i))
393                                 cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(DATASIZE = (" > "$CONFDIR/afinstal.conf"
394                         fi              
395                         i=$(($i+1))
396                         numlinea=$(($linea+$i))
397                         cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(USERID = $USER(" > "$CONFDIR/afinstal.conf"
398                         i=$(($i+1))
399                         numlinea=$(($linea+$i))
400                         cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(FECINS = $fecha(" > "$CONFDIR/afinstal.conf"
401                         i=0
402                         linea=$(($linea+10))
403                 done #for       
404         done #while
405         # Termino la instalacion, muestro informacion.
406         j=10
407         echo " ***************************************************************** "
408         echo " *                        Proceso de instalacion concluido                   * "
409         comandos=`cat "$CONFDIR/afinstal.conf" | grep Comando `
410         for i in 17 25 35 ; do
411                 
412                 fecha=`cat "$CONFDIR/afinstal.conf" | grep -n FECINS | grep $i | sed 's/.*= //'`
413                 i=$(($i +1))
414                 usu=`cat "$CONDIR/afinstal.conf" | grep -n USERID | grep $i | sed 's/.*= //'`
415                 echo " *
416         done