]> git.llucax.com Git - z.facultad/75.08/llamadas.git/blob - 2AFINSTAL
Ya tengo en cuenta componentes instalados permitiendo instalar solo los que falten...
[z.facultad/75.08/llamadas.git] / 2AFINSTAL
1 #!/bin/bash 
2 # vim: set softtabstop=4 tabstop=4 
3
4 #FUNCIONES AUXILIARES 
5
6 # devuelve 0 si la ruta fue cambiada 
7 # y 1 si quedo por defecto
8 function cambiaruta {
9         echo ""
10         echo "Nombre del directorio $1 es: ($2)"
11         echo "Si desea modificarlo ingrese la ruta completa deseada y luego presione ENTER"
12         echo "de lo contrario presione ENTER."
13         echo ""
14         read DIRSELECTED
15         if [ -n "$DIRSELECTED" ]; then
16                 return 0
17         else 
18                 return 1
19         fi
20 }
21
22 #Verifico que el sistema operativo sea correcto.
23 if echo $0 | egrep -q 'AFINSTAL$'; then
24         SISOPTP="Linux"
25 fi
26 if echo $0 | egrep -q 'AFINSTAM$'; then
27         SISOPTP="Mac"
28 fi
29 if echo $0 | egrep -q 'AFINSTAW$'; then
30         SISOPTP="Windows"
31 fi
32
33 CURSIS=$(uname)
34
35 # comienzo instalacion si el sistema es correcto
36 if [ "$SISOPTP" != "$CURSIS" ]; then
37 cat<<MARCA
38 "ERROR !!!"
39 "Este proceso de instalación es para $SISOPTP"
40 "y su sistema operativo es $CURSIS"
41 "Solicite a su proveedor la versión adecuada"
42 "e inicie nuevamente el proceso de instalación"
43 MARCA
44 exit 1
45 else
46         echo "Proceso de instalación para $SISOPTP"
47         echo "Presione una tecla para continuar"
48         read op
49 fi
50
51
52 #Verifico si hay algo instalado 
53 #busco en el archivo afinstal.conf (desde donde???) por ahora desde el home
54
55 afinstal=`find $HOME -name 'afinstal.conf'`
56
57 if [ -n "$afinstal" ]; then #habia algo instalado
58         #busco paquetes instalados. Leo afinstal.conf para ver que hay
59         #como el archivo existe, tiene que tener alguna info almacenada..
60         instdir=`cat $afinstal | grep -n INSTDIR | grep 1 | sed s/\.\*\=\ //`
61         confdir=`cat $afinstal | grep -n CONFDIR | grep 2 | sed s/\.\*\=\ //`
62         #Busco los binarios
63         comp=0
64         anti=0
65         afic=0
66         afim=0  
67         bindir=`cat $afinstal | grep -n  BINDIR | grep 11 | sed s/\.\*\=\ //`
68         logdir=`cat $afinstal | grep -n  LOGDIR | grep 12 | sed s/\.\*\=\ //`
69         logname=`cat $afinstal | grep -n LOGNAME | grep 13 | sed s/\.\*\=\ //`
70         logsize=`cat $afinstal | grep -n  BINDIR | grep 14 | sed s/\.\*\=\ //`
71
72         # Si habia algo instalado, la informacion del los directorios quedo
73         # almacenada, pues es igual para todos los scripts. Excepto el directorio de
74         # datos para antifraude.
75         
76         if [ ! -f "$bindir""antifraude.pl" ]; then
77                 #instalo antifraude porque no existe
78                 echo "Instalando Antifraude..."
79                 anti=1
80                 cp "$instdir/antifraude.pl" "$bindir/antifraude.pl"
81         fi
82         if [ ! -f "$bindir""aficonf" ]; then
83                 #instalo aficonf porque no existe
84                 echo "Instalando Aficonf..."
85                 afic=1
86         cp "$instdir/aficonf" "$bindir/aficonf"
87         fi
88         if [ ! -f "$bindir""afimonio" ]; then
89                 #instalo afimonio porque no existe
90                 echo "Instalando Afimonio..."
91                 afim=1
92                 cp "$instdir/afimonio" "$bindir/afimonio"
93         fi
94         #hay que loguear lo que se instalo
95         comp=$(($anti + $afic + $afim))
96         if [ $anti != 0 ]; then
97                 echo "Ingrese la ruta completa para el directorio de datos"
98                 read datadir
99                 while [ ! -d "$datadir" ]; do
100                         echo "La ruta especificada no existe, ingrese un directorio existente"
101                         read datadir
102                 done
103                 echo "Ingrese tamaño máximo de datos"
104                 read datasize
105                 fecha=$(date)
106                 cat "$confdir/afinstal.conf" | sed "10s/.*/Comando antifraude.pl/" > "$confdir/afinstal.conf"
107                 cat "$confdir/afinstal.conf" | sed "11s(.*(BINDIR = $bindir(" > "$confdir/afinstal.conf"
108                 cat "$confdir/afinstal.conf" | sed "12s(.*(LOGDIR = $logdir(" > "$confdir/afinstal.conf"
109                 cat "$confdir/afinstal.conf" | sed "13s(.*(LOGNAME = $logname(" > "$confdir/afinstal.conf"
110                 cat "$confdir/afinstal.conf" | sed "14s(.*(LOGSIZE = $logsize(" > "$confdir/afinstal.conf"
111                 cat "$confdir/afinstal.conf" | sed "15s(.*(DATADIR = $datadir(" > "$confdir/afinstal.conf"
112                 cat "$confdir/afinstal.conf" | sed "16s(.*(DATASIZE = $datasize(" > "$confdir/afinstal.conf"
113                 cat "$confdir/afinstal.conf" | sed "17s(.*(USERID = $USER(" > "$confdir/afinstal.conf"
114                 cat "$confdir/afinstal.conf" | sed "18s(.*(FECINS = $fecha(" > "$confdir/afinstal.conf"
115         fi
116         if [ $afic != 0 ]; then
117                 fecha=$(date)
118                 cat "$confdir/afinstal.conf" | sed "20s/.*/Comando aficonf/" > "$confdir/afinstal.conf"
119                 cat "$confdir/afinstal.conf" | sed "21s(.*(BINDIR = $bindir(" > "$confdir/afinstal.conf"
120                 cat "$confdir/afinstal.conf" | sed "22s(.*(LOGDIR = $logdir(" > "$confdir/afinstal.conf"
121                 cat "$confdir/afinstal.conf" | sed "23s(.*(LOGNAME = $logname(" > "$confdir/afinstal.conf"
122                 cat "$confdir/afinstal.conf" | sed "24s(.*(LOGSIZE = $logsize(" > "$confdir/afinstal.conf"
123                 cat "$confdir/afinstal.conf" | sed "25s(.*(USERID = $USER(" > "$confdir/afinstal.conf"
124                 cat "$confdir/afinstal.conf" | sed "26s(.*(FECINS = $fecha(" > "$confdir/afinstal.conf"
125         fi
126         if [ $afim != 0 ]; then
127                 fecha=$(date)
128                 cat "$confdir/afinstal.conf" | sed "30s/.*/Comando afimonio/" > "$confdir/afinstal.conf"
129                 cat "$confdir/afinstal.conf" | sed "31s(.*(BINDIR = $bindir(" > "$confdir/afinstal.conf"
130                 cat "$confdir/afinstal.conf" | sed "32s(.*(LOGDIR = $logdir(" > "$confdir/afinstal.conf"
131                 cat "$confdir/afinstal.conf" | sed "33s(.*(LOGNAME = $logname(" > "$confdir/afinstal.conf"
132                 cat "$confdir/afinstal.conf" | sed "34s(.*(LOGSIZE = $logsize(" > "$confdir/afinstal.conf"
133                 cat "$confdir/afinstal.conf" | sed "35s(.*(USERID = $USER(" > "$confdir/afinstal.conf"
134                 cat "$confdir/afinstal.conf" | sed "36s(.*(FECINS = $fecha(" > "$confdir/afinstal.conf"
135         fi
136         
137         if [ $comp == 0 ]; then
138         #busco los datos
139         fecha1=`cat $afinstal | grep -n FECINS | grep 18 | sed s/\.\*\=\ //`
140         fecha2=`cat $afinstal | grep -n FECINS | grep 26 | sed s/\.\*\=\ //`
141         fecha3=`cat $afinstal | grep -n FECINS | grep 36 | sed s/\.\*\=\ //`
142         usu1=`cat $afinstal | grep -n USERID | grep 17 | sed s/\.\*\=\ //`
143         usu2=`cat $afinstal | grep -n USERID | grep 25 | sed s/\.\*\=\ //`
144         usu3=`cat $afinstal | grep -n USERID | grep 35 | sed s/\.\*\=\ //`
145 cat<<MARCA
146 ***************************************************************
147 * Se encuentran instalados los siguientes componentes:        *
148 * Antifraude.pl instalado el $fecha1 por $usu1 *
149 * Aficonf instalado el $fecha2 por $usu2 *
150 * Antifraude.pl instalado el $fecha3 por $usu3 *
151 *                                                             *
152 *               Copyright TPSistemasOp (c) 2004               *
153 ***************************************************************
154
155 Proceso de instalación cancelado.
156 MARCA
157 exit 0
158         fi
159 else #si no  habia algo instalado instalo todo...
160         f="a"
161         while [ "$f" != "" ]; do
162 cat <<MARCA
163 ***************************************************************
164 *                                                             *
165 *            Proceso de instalación de "Antifraude"           *
166 *              Copyright TPSistemasOp (c) 2004                *
167 *                                                             *
168 ***************************************************************
169 A T E N C I O N: Al instalar Antifraude UD. expresa estar
170 en un todo de acuerdo con los términos y condiciones del 
171 ACUERDO DE LICENCIA DE SOFTWARE incluido en este paquete.
172
173 Si desea cancelar este proceso oprima 'F' y luego ENTER.
174 Para continuar oprima solamente ENTER.
175 MARCA
176         read f
177         if [ "$f" = "F" ]; then
178                 echo "Proceso de instalación cancelado"
179                 exit 0
180         fi
181         done
182         #debo verificar que perl este instalado
183         if [ "esta" = "`type perl | sed s/\"perl is .*\"/\"esta\"/`" ]; then 
184                 echo "Perl esta instalado"
185         else
186                 cat <<MARCA
187                 "ERROR !:"
188                 "Este proceso de instalación solo puede ser"
189                 "ejecutado si Perl 5 o superior ya esta instalado"
190                 
191                 "Efectúe a instalación de Perl"
192                 "e inicie nuevamente el procedimiento de instalación."
193 MARCA
194                 exit 0 
195         fi
196         #defino los paths de configuracion e instalacion
197         CURDIR=$PWD
198         CONFDIR="${CURDIR}/conf"
199         INSTDIR="${CURDIR}/inst"
200         #creo el afinstal.conf y le agrego las 2 primeras lineas
201         echo "INSTDIR = $INSTDIR" >> "$CONFDIR/afinstal.conf"
202         echo "CONFDIR = $CONFDIR" >> "$CONFDIR/afinstal.conf"
203         for n in `seq 3 51`
204                 do
205                         echo "" >> "$CONFDIR/afinstal.conf"
206                 done            
207         linea=10
208         i=0
209         fecha=$(date)
210         for comando in antifraude.pl afimonio aficonf ; do 
211                 op="a" 
212                 while [ -n "$op" ]; do 
213                         #Almance el path actual 
214                         BINDIR="${CURDIR}/bin"
215                         DATADIR="${CURDIR}/llamadas"
216                         LOGDIR="${CURDIR}/log"
217                         
218                         echo "La ruta del directorio de instalación es: ($INSTDIR)"
219                         echo "La ruta del directorio de configuración es: ($CONFDIR)"
220                         echo "La ruta del directorio de ejecutables es: ($BINDIR)"
221                         DIRSELECTED=""
222                         if cambiaruta "ejecutables" $BINDIR ; then
223                                 BINDIR=$DIRSELECTED
224                         fi
225                         if cambiaruta "de datos" $DATADIR ; then
226                                 DATADIR=$DIRSELECTED
227                         fi
228                         if cambiaruta "de log" $LOGDIR ; then
229                                 LOGDIR=$DIRSELECTED
230                         fi
231                         echo "Nombre del archivo de log: (${comando}.log)"
232                         echo "Si desea conservar este nombre presione ENTER, de lo "
233                         echo "contrario ingrese un nuevo nombre y luego ENTER"
234                         read LOGNAME
235                         if [ -z "$logname" ]; then
236                                 LOGNAME="${comando}.log"
237                         fi
238                         echo "Tamaño máximo para el archivo <$LOGNAME> (Mb): 20Mb"
239                         echo "Si desea conservar este valor presione ENTER, de lo "
240                         echo "contrario ingrese un nuevo valor y luego ENTER"
241                         read LOGSIZE
242                         if [ -z "$LOGSIZE" ]; then
243                                 LOGSIZE=20
244                         fi
245
246                         cat <<MARCA 
247                         "               Parametros de instalación de $comando           "
248                         "       ==========================================      "
249                         " Nombre del directorio de instalación: $INSTDIR                "
250                         " Nombre del directorio de ejecutables: $BINDIR                 "
251                         " Nombre del directorio de datos: $DATADIR                              "
252                         " Nombre del directorio de configuración: $CONFDIR              "
253                         " Directorio y nombre del archivo de log: $LOGDIR/$LOGNAME"
254                         " Tamaño máximo para el archivo de log: $LOGSIZE                "
255
256                         Si los datos ingresados son correctos oprima solamente ENTER, si desea
257                         modificar alguno de ellos oprima cualquier otra tecla y luego ENTER.
258 MARCA
259                         read op         
260
261                         echo "Si desea iniciar la instalación de <$comando>, oprima"
262                         echo "solamente ENTER, si desea cancelar el proceso oprima"
263                         echo "cualquier otra tecla y luego ENTER."
264
265                         read op
266
267                         if [ -n "$op" ]; then
268                                 echo "Proceso de instalación cancelado"
269                                 exit 0
270                         fi
271
272                         # Cremos los directorios para este comando
273                         echo "Creando Estructura de Directorio...."
274                         mkdir -p $BINDIR
275                         mkdir -p $DATADIR
276                         mkdir -p $DATADIR/{aprocesar,enproceso,rechazadas,procesadas}
277                         mkdir -p $LOGDIR
278                         touch $LOGDIR/$LOGNAME
279                         echo "Moviendo Archivos....."
280                         cp $INSTDIR/$comando $BINDIR
281                         #cp $INSTDIR/umbrales.param $CONFDIR
282                         #cp $INSTDIR/*.data $DATADIR/aprocesar
283                         
284                         numlinea=$(($linea+$i))
285                         cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s/.*/Comando $comando/" > "$CONFDIR/afinstal.conf"
286                         i=$(($i+1))
287                         numlinea=$(($linea+$i))
288                         cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(BINDIR = $BINDIR(" > "$CONFDIR/afinstal.conf"
289                         i=$(($i+1))
290                         numlinea=$(($linea+$i))
291                         cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(LOGDIR = $LOGDIR(" > "$CONFDIR/afinstal.conf"
292                         i=$(($i+1))
293                         numlinea=$(($linea+$i))
294                         cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(LOGNAME = $LOGNAME(" > "$CONFDIR/afinstal.conf"
295                         i=$(($i+1))
296                         numlinea=$(($linea+$i))
297                         cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(LOGSIZE = $LOGSIZE(" > "$CONFDIR/afinstal.conf"
298                         if [ "$FILE" = "antifraude.pl" ]; then
299                                 i=$(($i+1))
300                                 numlinea=$(($linea+$i))
301                                 cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(DATADIR = $DATADIR(" > "$CONFDIR/afinstal.conf"
302                                 i=$(($i+1))
303                                 numlinea=$(($linea+$i))
304                                 cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(DATASIZE = (" > "$CONFDIR/afinstal.conf"
305                         fi              
306                         i=$(($i+1))
307                         numlinea=$(($linea+$i))
308                         cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(USERID = $USER(" > "$CONFDIR/afinstal.conf"
309                         i=$(($i+1))
310                         numlinea=$(($linea+$i))
311                         cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(FECINS = $fecha(" > "$CONFDIR/afinstal.conf"
312                         i=0
313                         linea=$(($linea+10))
314                 done #for       
315         done #while
316         # Termino la instalacion, muestro informacion.
317         j=10
318         echo " ***************************************************************** "
319         echo " *                        Proceso de instalacion concluido                   * "
320         comandos=`cat "$CONFDIR/afinstal.conf" | grep Comando `
321         for i in 17 25 35 ; do
322                 
323                 fecha=`cat "$CONFDIR/afinstal.conf" | grep -n FECINS | grep $i | sed 's/.*= //'`
324                 i=$(($i +1))
325                 usu=`cat "$CONDIR/afinstal.conf" | grep -n USERID | grep $i | sed 's/.*= //'`
326                 echo " *
327         done
328         
329 fi #else