]> git.llucax.com Git - z.facultad/75.08/llamadas.git/blob - BUGAFINSTAL
6bf0d3a2af2f3e6822d752a6afd3f2473caba349
[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
128 # [STEP1] Verifico el OS vs SCRIP y la presencia de PERL
129 echo ">> Verificando version del software contra el OS.."
130 checkOS
131 if [ "$?" -ne 0 ]; then exit 1
132 fi
133 echo ">> Verificando la existencia de PERL.."
134 checkPerl
135 if [ "$?" -ne 0 ]; then exit 1
136 fi
137 echo ">> Proceso de instalacion para $SISOPTP iniciado."
138 echo ">> Presione ENTER para continuar"
139 read key
140
141 # [STEP2] License Agreements
142 cat <<MARCA
143 ***************************************************************
144 *                                                             *
145 *            Proceso de instalacion de "Antifraude"           *
146 *              Copyright TPSistemasOp (c) 2004                *
147 *                                                             *
148 ***************************************************************
149  A T E N C I O N: Al instalar Antifraude UD. expresa estar
150  en un todo de acuerdo con los terminos y condiciones del 
151  ACUERDO DE LICENCIA DE SOFTWARE incluido en este paquete.
152  
153  Si desea cancelar este proceso oprima 'F' y luego ENTER.
154  Para continuar oprima ENTER.
155 MARCA
156 key="something"
157 while [ "$key" != "" ]; do
158 read key
159 if [ "$key" = "F" ]; then
160         echo ">> Proceso de instalacion cancelado"
161         exit 0
162 fi
163 done
164
165 # [STEP3] Chequeamos si hay componentes ya instalados
166 if [ -f "./conf/afinstal.conf" ]; then
167         #busco paquetes instalados. Leo afinstal.conf para ver que hay
168         #como el archivo existe, tiene que tener alguna info almacenada..
169         instdir=`cat $afinstal | grep -n INSTDIR | grep 1 | sed s/\.\*\=\ //`
170         confdir=`cat $afinstal | grep -n CONFDIR | grep 2 | sed s/\.\*\=\ //`
171         #Busco los binarios
172         comp=0
173         anti=0
174         afic=0
175         afim=0  
176         bindir=`cat $afinstal | grep -n  BINDIR | grep 11 | sed s/\.\*\=\ //`
177         logdir=`cat $afinstal | grep -n  LOGDIR | grep 12 | sed s/\.\*\=\ //`
178         logname=`cat $afinstal | grep -n LOGNAME | grep 13 | sed s/\.\*\=\ //`
179         logsize=`cat $afinstal | grep -n  BINDIR | grep 14 | sed s/\.\*\=\ //`
180
181         # Si habia algo instalado, la informacion del los directorios quedo
182         # almacenada, pues es igual para todos los scripts. Excepto el directorio de
183         # datos para antifraude.
184         if [ ! -f "$bindir""antifraude.pl" ]; then
185                 #instalo antifraude porque no existe
186                 echo "Instalando Antifraude..."
187                 anti=1
188                 cp "$instdir/antifraude.pl" "$bindir/antifraude.pl"
189         fi
190         if [ ! -f "$bindir""aficonf" ]; then
191                 #instalo aficonf porque no existe
192                 echo "Instalando Aficonf..."
193                 afic=1
194         cp "$instdir/aficonf" "$bindir/aficonf"
195         fi
196         if [ ! -f "$bindir""afimonio" ]; then
197                 #instalo afimonio porque no existe
198                 echo "Instalando Afimonio..."
199                 afim=1
200                 cp "$instdir/afimonio" "$bindir/afimonio"
201         fi
202
203         #hay que loguear lo que se instalo
204         comp=$(($anti + $afic + $afim))
205         if [ $anti != 0 ]; then
206                 echo "Ingrese la ruta completa para el directorio de datos"
207                 read datadir
208                 while [ ! -d "$datadir" ]; do
209                         echo "La ruta especificada no existe, ingrese un directorio existente"
210                         read datadir
211                 done
212                 echo "Ingrese tamaño máximo de datos"
213                 read datasize
214                 fecha=$(date)
215                 cat "$confdir/afinstal.conf" | sed "10s/.*/Comando antifraude.pl/" > "$confdir/afinstal.conf"
216                 cat "$confdir/afinstal.conf" | sed "11s(.*(BINDIR = $bindir(" > "$confdir/afinstal.conf"
217                 cat "$confdir/afinstal.conf" | sed "12s(.*(LOGDIR = $logdir(" > "$confdir/afinstal.conf"
218                 cat "$confdir/afinstal.conf" | sed "13s(.*(LOGNAME = $logname(" > "$confdir/afinstal.conf"
219                 cat "$confdir/afinstal.conf" | sed "14s(.*(LOGSIZE = $logsize(" > "$confdir/afinstal.conf"
220                 cat "$confdir/afinstal.conf" | sed "15s(.*(DATADIR = $datadir(" > "$confdir/afinstal.conf"
221                 cat "$confdir/afinstal.conf" | sed "16s(.*(DATASIZE = $datasize(" > "$confdir/afinstal.conf"
222                 cat "$confdir/afinstal.conf" | sed "17s(.*(USERID = $USER(" > "$confdir/afinstal.conf"
223                 cat "$confdir/afinstal.conf" | sed "18s(.*(FECINS = $fecha(" > "$confdir/afinstal.conf"
224         fi
225         if [ $afic != 0 ]; then
226                 fecha=$(date)
227                 cat "$confdir/afinstal.conf" | sed "20s/.*/Comando aficonf/" > "$confdir/afinstal.conf"
228                 cat "$confdir/afinstal.conf" | sed "21s(.*(BINDIR = $bindir(" > "$confdir/afinstal.conf"
229                 cat "$confdir/afinstal.conf" | sed "22s(.*(LOGDIR = $logdir(" > "$confdir/afinstal.conf"
230                 cat "$confdir/afinstal.conf" | sed "23s(.*(LOGNAME = $logname(" > "$confdir/afinstal.conf"
231                 cat "$confdir/afinstal.conf" | sed "24s(.*(LOGSIZE = $logsize(" > "$confdir/afinstal.conf"
232                 cat "$confdir/afinstal.conf" | sed "25s(.*(USERID = $USER(" > "$confdir/afinstal.conf"
233                 cat "$confdir/afinstal.conf" | sed "26s(.*(FECINS = $fecha(" > "$confdir/afinstal.conf"
234         fi
235         if [ $afim != 0 ]; then
236                 fecha=$(date)
237                 cat "$confdir/afinstal.conf" | sed "30s/.*/Comando afimonio/" > "$confdir/afinstal.conf"
238                 cat "$confdir/afinstal.conf" | sed "31s(.*(BINDIR = $bindir(" > "$confdir/afinstal.conf"
239                 cat "$confdir/afinstal.conf" | sed "32s(.*(LOGDIR = $logdir(" > "$confdir/afinstal.conf"
240                 cat "$confdir/afinstal.conf" | sed "33s(.*(LOGNAME = $logname(" > "$confdir/afinstal.conf"
241                 cat "$confdir/afinstal.conf" | sed "34s(.*(LOGSIZE = $logsize(" > "$confdir/afinstal.conf"
242                 cat "$confdir/afinstal.conf" | sed "35s(.*(USERID = $USER(" > "$confdir/afinstal.conf"
243                 cat "$confdir/afinstal.conf" | sed "36s(.*(FECINS = $fecha(" > "$confdir/afinstal.conf"
244         fi
245         if [ $comp == 0 ]; then
246
247         #busco los datos
248         fecha1=`cat $afinstal | grep -n FECINS | grep 18 | sed s/\.\*\=\ //`
249         fecha2=`cat $afinstal | grep -n FECINS | grep 26 | sed s/\.\*\=\ //`
250         fecha3=`cat $afinstal | grep -n FECINS | grep 36 | sed s/\.\*\=\ //`
251         usu1=`cat $afinstal | grep -n USERID | grep 17 | sed s/\.\*\=\ //`
252         usu2=`cat $afinstal | grep -n USERID | grep 25 | sed s/\.\*\=\ //`
253         usu3=`cat $afinstal | grep -n USERID | grep 35 | sed s/\.\*\=\ //`
254
255 cat<<MARCA
256 ***************************************************************
257 * Se encuentran instalados los siguientes componentes:        *
258 * Antifraude.pl instalado el $fecha1 por $usu1 *
259 * Aficonf instalado el $fecha2 por $usu2 *
260 * Antifraude.pl instalado el $fecha3 por $usu3  *
261 *                                                             *
262 *               Copyright TPSistemasOp (c) 2004               *
263 ***************************************************************
264
265 Proceso de instalación cancelado.
266 MARCA
267         exit 0
268         fi
269 fi
270
271 # [STEP4] Seleecion de los componentes a instalar
272 # TODO: tener en cuenta los que ya estan
273 selectModules
274 exit 0
275
276 # [STEP5] Verifico que perl este instalado
277
278 #defino los paths de configuracion e instalacion
279         CURDIR=$PWD
280         CONFDIR="${CURDIR}/conf"
281         INSTDIR="${CURDIR}/inst"
282         #creo el afinstal.conf y le agrego las 2 primeras lineas
283         echo "INSTDIR = $INSTDIR" >> "$CONFDIR/afinstal.conf"
284         echo "CONFDIR = $CONFDIR" >> "$CONFDIR/afinstal.conf"
285         for n in `seq 3 51`
286                 do
287                         echo "" >> "$CONFDIR/afinstal.conf"
288                 done            
289         linea=10
290         i=0
291         fecha=$(date)
292         for comando in antifraude.pl afimonio aficonf ; do 
293                 op="a" 
294                 while [ -n "$op" ]; do 
295                         #Almance el path actual 
296                         BINDIR="${CURDIR}/bin"
297                         DATADIR="${CURDIR}/llamadas"
298                         LOGDIR="${CURDIR}/log"
299                         
300                         echo "La ruta del directorio de instalación es: ($INSTDIR)"
301                         echo "La ruta del directorio de configuración es: ($CONFDIR)"
302                         echo "La ruta del directorio de ejecutables es: ($BINDIR)"
303                         DIRSELECTED=""
304                         if cambiaruta "ejecutables" $BINDIR ; then
305                                 BINDIR=$DIRSELECTED
306                         fi
307                         if cambiaruta "de datos" $DATADIR ; then
308                                 DATADIR=$DIRSELECTED
309                         fi
310                         if cambiaruta "de log" $LOGDIR ; then
311                                 LOGDIR=$DIRSELECTED
312                         fi
313                         echo "Nombre del archivo de log: (${comando}.log)"
314                         echo "Si desea conservar este nombre presione ENTER, de lo "
315                         echo "contrario ingrese un nuevo nombre y luego ENTER"
316                         read LOGNAME
317                         if [ -z "$logname" ]; then
318                                 LOGNAME="${comando}.log"
319                         fi
320                         echo "Tamaño máximo para el archivo <$LOGNAME> (Mb): 20Mb"
321                         echo "Si desea conservar este valor presione ENTER, de lo "
322                         echo "contrario ingrese un nuevo valor y luego ENTER"
323                         read LOGSIZE
324                         if [ -z "$LOGSIZE" ]; then
325                                 LOGSIZE=20
326                         fi
327
328                         cat <<MARCA 
329                         "               Parametros de instalación de $comando           "
330                         "       ==========================================      "
331                         " Nombre del directorio de instalación: $INSTDIR                "
332                         " Nombre del directorio de ejecutables: $BINDIR                 "
333                         " Nombre del directorio de datos: $DATADIR                              "
334                         " Nombre del directorio de configuración: $CONFDIR              "
335                         " Directorio y nombre del archivo de log: $LOGDIR/$LOGNAME"
336                         " Tamaño máximo para el archivo de log: $LOGSIZE                "
337
338                         Si los datos ingresados son correctos oprima solamente ENTER, si desea
339                         modificar alguno de ellos oprima cualquier otra tecla y luego ENTER.
340 MARCA
341                         read op         
342
343                         echo "Si desea iniciar la instalación de <$comando>, oprima"
344                         echo "solamente ENTER, si desea cancelar el proceso oprima"
345                         echo "cualquier otra tecla y luego ENTER."
346
347                         read op
348
349                         if [ -n "$op" ]; then
350                                 echo "Proceso de instalación cancelado"
351                                 exit 0
352                         fi
353
354                         # Cremos los directorios para este comando
355                         echo "Creando Estructura de Directorio...."
356                         mkdir -p $BINDIR
357                         mkdir -p $DATADIR
358                         mkdir -p $DATADIR/{aprocesar,enproceso,rechazadas,procesadas}
359                         mkdir -p $LOGDIR
360                         touch $LOGDIR/$LOGNAME
361                         echo "Moviendo Archivos....."
362                         cp $INSTDIR/$comando $BINDIR
363                         #cp $INSTDIR/umbrales.param $CONFDIR
364                         #cp $INSTDIR/*.data $DATADIR/aprocesar
365                         
366                         numlinea=$(($linea+$i))
367                         cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s/.*/Comando $comando/" > "$CONFDIR/afinstal.conf"
368                         i=$(($i+1))
369                         numlinea=$(($linea+$i))
370                         cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(BINDIR = $BINDIR(" > "$CONFDIR/afinstal.conf"
371                         i=$(($i+1))
372                         numlinea=$(($linea+$i))
373                         cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(LOGDIR = $LOGDIR(" > "$CONFDIR/afinstal.conf"
374                         i=$(($i+1))
375                         numlinea=$(($linea+$i))
376                         cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(LOGNAME = $LOGNAME(" > "$CONFDIR/afinstal.conf"
377                         i=$(($i+1))
378                         numlinea=$(($linea+$i))
379                         cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(LOGSIZE = $LOGSIZE(" > "$CONFDIR/afinstal.conf"
380                         if [ "$FILE" = "antifraude.pl" ]; then
381                                 i=$(($i+1))
382                                 numlinea=$(($linea+$i))
383                                 cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(DATADIR = $DATADIR(" > "$CONFDIR/afinstal.conf"
384                                 i=$(($i+1))
385                                 numlinea=$(($linea+$i))
386                                 cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(DATASIZE = (" > "$CONFDIR/afinstal.conf"
387                         fi              
388                         i=$(($i+1))
389                         numlinea=$(($linea+$i))
390                         cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(USERID = $USER(" > "$CONFDIR/afinstal.conf"
391                         i=$(($i+1))
392                         numlinea=$(($linea+$i))
393                         cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(FECINS = $fecha(" > "$CONFDIR/afinstal.conf"
394                         i=0
395                         linea=$(($linea+10))
396                 done #for       
397         done #while
398         # Termino la instalacion, muestro informacion.
399         j=10
400         echo " ***************************************************************** "
401         echo " *                        Proceso de instalacion concluido                   * "
402         comandos=`cat "$CONFDIR/afinstal.conf" | grep Comando `
403         for i in 17 25 35 ; do
404                 
405                 fecha=`cat "$CONFDIR/afinstal.conf" | grep -n FECINS | grep $i | sed 's/.*= //'`
406                 i=$(($i +1))
407                 usu=`cat "$CONDIR/afinstal.conf" | grep -n USERID | grep $i | sed 's/.*= //'`
408                 echo " *
409         done