2 # vim: set softtabstop=4 tabstop=4
4 ################# Funciones ###########################
6 # Devuelve 0 si la ruta fue cambiada y 1 si quedo por defecto
9 >> Nombre del directorio de $1 es: ($3)
10 Si desea modificarlo reemplaze "$2" por el deseado y presione ENTER,
11 de lo contrario solo presione ENTER."
14 if [ -n "$DIRSELECTED" ]; then return 1
19 # Devuelve 0 si el script y el OS matchean, 1 otherwise
21 if echo $0 | egrep -q 'AFINSTAL$'; then
24 if echo $0 | egrep -q 'AFINSTAM$'; then
27 if echo $0 | egrep -q 'AFINSTAW$'; then
31 if [ "$SISOPTP" != "$SCRIPTOS" ]; then
35 Este proceso de instalacion es para $SISOPTP y su sistema operativo
36 es $CURSIS. Solicite a su proveedor la version adecuada e inicie
37 nuevamente el proceso de instalacion.
45 # Devuelve 0 si se encuentra Perl instalado, 1 otherwise
46 function checkPerl() {
47 if [ "perl" = "`type perl | sed s/\"perl is .*\"/\"perl\"/`" ]; then
53 "Este proceso de instalación solo puede ser"
54 "ejecutado si Perl 5 o superior ya esta instalado"
56 "Efectúe a instalación de Perl"
57 i"e inicie nuevamente el procedimiento de instalación."
63 # Modifica una linea dada de un archivo dado
64 function changeLine() {
65 cat $1 | sed "${2}s%.*%$3%" > $1
68 # Permite seleccionar que componentes se instalaran
69 function selectModules() {
70 PS3="Seleccione un componente:"
71 choices="AFIMONIO AFICONF ANTIFRAUDE"
74 while [ "$key" = "S" ] && [ -n "$choices" ]
79 ***********************************************************
80 * SELECCION de COMPONENTES *
81 * Por favor seleecione los componentes a ser instalados *
82 * de a uno por vez, a traves del siguiente menu: *
83 ***********************************************************
84 >> Se instalaran: $toinstall
87 select REPLY in $choices
90 "AFIMONIO" ) selected="afimonio";;
91 "AFICONF" ) selected="aficonf";;
92 "ANTIFRAUDE" ) selected="antifraude.pl";;
93 * ) selected="INVALID";;
98 if [ $selected != "INVALID" ]; then
99 choices=`echo $choices | sed s/$REPLY//`
100 if [ -z "$toinstall" ]; then toinstall=$selected
101 else toinstall="$toinstall,$selected"
104 if [ -n "$choices" ]; then
106 echo "Se instalara [$selected], si desea seleccionar"
107 echo "otro componente presione \"S\" y luego ENTER, de lo contrario"
108 echo "presione solo ENTER para comenzar a instalar los componentes"
110 if [ "$key" = "s" ]; then key="S"
115 if [ -n "$key" ]; then echo
118 ***********************************************************
119 * La seleccion de componentes ha finalizado. Se procedera *
120 * con la instalacion. *
121 ***********************************************************
122 Componentes a instalar: [ $toinstall ]
124 < Presione una tecla para continuar >
129 ################### MAIN SCRIPT CODE ###################
132 CURRDIR=`echo ${0%/*} | sed s%'\.'%$PWD%`
134 # [STEP1] Verifico el OS vs SCRIPT y la presencia de PERL
135 echo ">> Verificando version del software contra el OS.."
137 if [ "$?" -ne 0 ]; then exit 1
139 echo ">> Verificando la existencia de PERL.."
141 if [ "$?" -ne 0 ]; then exit 1
143 echo ">> Proceso de instalacion para $SISOPTP iniciado."
144 echo ">> Presione ENTER para continuar"
147 # [STEP2] License Agreements
149 ***************************************************************
151 * Proceso de instalacion de "Antifraude" *
152 * Copyright TPSistemasOp (c) 2004 *
154 ***************************************************************
155 A T E N C I O N: Al instalar Antifraude UD. expresa estar
156 en un todo de acuerdo con los terminos y condiciones del
157 ACUERDO DE LICENCIA DE SOFTWARE incluido en este paquete.
159 Si desea cancelar este proceso oprima 'F' y luego ENTER.
160 Para continuar oprima ENTER.
163 while [ "$key" != "" ]; do
165 if [ "$key" = "F" ]; then
166 echo ">> Proceso de instalacion cancelado"
171 # [STEP3] Chequeamos si hay componentes ya instalados
174 # [STEP4] Seleecion de los componentes a instalar
175 # TODO: tener en cuenta los que ya estan y no permitir elegirlos
178 # [STEP5] Definir paths de cada componente e instalarlo guardando
179 # la informacion pertinente en el afinstal.conf
180 CONFDIR="${CURRDIR}/conf"
181 INSTDIR="${CURRDIR}/inst"
182 CONFFILE="${CONFDIR}/afinstal.conf"
185 if [ ! -f "$CONFFILE" ] || [ ! -s "$CONFFILE" ]; then
187 echo "INSTDIR = $INSTDIR" >> $CONFFILE
188 echo "CONFDIR = $CONFDIR" >> $CONFFILE
189 for n in `seq 3 51`; do
194 # Comienzo la instalacion de cada componente
195 comandos=`echo $toinstall | sed s%,%" "%g`
196 for comando in $comandos
199 while [ -n "$choice" ]; do
201 # Directorios FIJOS para todos los componentes
205 ** Iniciando instalacion del componente <$comando>.
206 ** A continuacion se le permitira establecer la estructura de
207 ** directorios donde se instalara el mismo.
209 >> Nombre del directorio de instalacion: ($INSTDIR)
210 >> Nombre del directorio de configuracion: ($CONFDIR)
212 Por favor ingrese un path raiz en donde se crearan los directorios de
213 ejecutables, datos y logs segun corresponda o bien presione ENTER para
214 aceptar el siguiente sugerido: $CURRDIR
217 # Le pido un rootpath donde se instalara este comando en particular
219 if [ -n "$userpath" ]; then ROOTPATH=$userpath
220 else ROOTPATH=$CURRDIR
223 # preparlos los dirs que voy a sugerir
224 BINDIR="${ROOTPATH}/bin"
225 LOGDIR="${ROOTPATH}/log"
228 # Le muestro el directorio sugerido para los binarios
229 askDir "ejecutables" "bin" $BINDIR
230 if [ "$?" -ne 0 ]; then BINDIR="${ROOTPATH}/$DIRSELECTED"
233 # Si estoy con antifraude.pl muestro el sugerido para los datos
234 if [ "$comando" = "antifraude.pl" ]; then
235 DATADIR="${ROOTPATH}/llamadas"
236 askDir "datos" "llamadas" $DATADIR
237 if [ "$?" -ne 0 ]; then DATADIR="${ROOTPATH}/$DIRSELECTED"
241 # Le muestro el directorio para los logs
242 askDir "de datos" "log" $LOGDIR
243 if [ "$?" -ne 0 ]; then LOGDIR="${ROOTPATH}/$DIRSELECTED"
246 # Le sugiero el archivo de log
247 echo ">> Nombre del archivo de log: (${comando%.pl}.log)"
248 echo "Si desea conservar este nombre presione ENTER, de lo contrario"
249 echo "ingrese un nuevo nombre y luego presione ENTER"
251 if [ -z "$LOGFILE" ]; then
252 LOGFILE="${comando%.pl}.log"
255 # Le sugiero un size para el logfile
256 echo ">> Tamaño máximo para el archivo ($LOGFILE) en MB: 200"
257 echo "Si desea conservar este valor presione ENTER, de lo contrario ingrese"
258 echo "un nuevo valor y luego presione ENTER"
260 if [ -z "$LOGSIZE" ]; then
265 >> Parametros de instalacion de $comando
266 >> ===================================================================
267 >> Directorio de instalación: $INSTDIR
268 >> Directorio de configuración: $CONFDIR
269 >> Directorio de ejecutables: $BINDIR
270 >> Directorio de datos: $DATADIR
271 >> Archivo de log: $LOGDIR/$LOGFILE
272 >> Tamaño máximo para el archivo de log: $LOGSIZE
274 Si los datos ingresados son correctos oprima solamente ENTER, si desea
275 modificar alguno de ellos oprima cualquier otra tecla y luego ENTER.
281 Si desea iniciar la instalación de <$comando>, oprima ENTER, si desea
282 cancelar el proceso oprima cualquier otra tecla y luego ENTER.
285 if [ -n "$choice" ]; then exit 1
288 # Comienzo a crear la estructura de directorios definida (Check permisos!!)
289 echo ">> Creando Estructura de Directorio...."
292 touch $LOGDIR/$LOGFILE
293 if [ $comando = "antifraude.pl" ]; then
295 mkdir -p $DATADIR/{aprocesar,enproceso,rechazadas,procesadas}
297 echo ">> Moviendo Archivos....."
298 cp $INSTDIR/$comando $BINDIR
299 cp $INSTDIR/umbrales.param $CONFDIR
300 #cp $INSTDIR/*.data $DATADIR/aprocesar
302 # Guardo los datos en el archivo de configuracion
304 "antifraude.pl" ) numline=10;;
305 "aficonf" ) numline=20;;
306 "afimonio" ) numline=30;;
309 changeLine "$CONFFILE" "$numline" "Comando $comando"
310 numline=$(($numline+1))
311 changeLine "$CONFFILE" "$numline" "BINDIR = $BINDIR"
312 numline=$(($numline+1))
313 changeLine "$CONFFILE" "$numline" "LOGDIR = $LOGDIR"
314 numline=$(($numline+1))
315 changeLine "$CONFFILE" "$numline" "LOGFILE = $LOGFILE"
316 numline=$(($numline+1))
317 changeLine "$CONFFILE" "$numline" "LOGSIZE = $LOGSIZE"
318 numline=$(($numline+1))
319 if [ "$comando" = "antifraude.pl" ]; then
320 changeLine "$CONFFILE" "$numline" "DATADIR = $DATADIR"
321 numline=$(($numline+1))
322 changeLine "$CONFFILE" "$numline" "DATASIZE = "
323 numline=$(($numline+1))
325 changeLine "$CONFFILE" "$numline" "USERID = `id | sed 's/(.*//;s/uid=//'`"
326 numline=$(($numline+1))
327 changeLine "$CONFFILE" "$numline" "FECINS = `date`"
330 # [STEP6] Ofrecer arrancar el Afimonio si estan los tres paquetes instalados
332 # [STEP7] Mostrar en un recuadro que se encuentra instalado en el sistema
335 ################## NO DAR BOLA A TODO LO QUE SIGUE ########################
337 if [ "2" = "3" ]; then
338 #busco paquetes instalados. Leo afinstal.conf para ver que hay
339 #como el archivo existe, tiene que tener alguna info almacenada..
340 instdir=`cat $afinstal | grep -n INSTDIR | grep 1 | sed s/\.\*\=\ //`
341 confdir=`cat $afinstal | grep -n CONFDIR | grep 2 | sed s/\.\*\=\ //`
347 bindir=`cat $afinstal | grep -n BINDIR | grep 11 | sed s/\.\*\=\ //`
348 logdir=`cat $afinstal | grep -n LOGDIR | grep 12 | sed s/\.\*\=\ //`
349 logname=`cat $afinstal | grep -n LOGNAME | grep 13 | sed s/\.\*\=\ //`
350 logsize=`cat $afinstal | grep -n BINDIR | grep 14 | sed s/\.\*\=\ //`
352 # Si habia algo instalado, la informacion del los directorios quedo
353 # almacenada, pues es igual para todos los scripts. Excepto el directorio de
354 # datos para antifraude.
355 if [ ! -f "$bindir""antifraude.pl" ]; then
356 #instalo antifraude porque no existe
357 echo "Instalando Antifraude..."
359 cp "$instdir/antifraude.pl" "$bindir/antifraude.pl"
361 if [ ! -f "$bindir""aficonf" ]; then
362 #instalo aficonf porque no existe
363 echo "Instalando Aficonf..."
365 cp "$instdir/aficonf" "$bindir/aficonf"
367 if [ ! -f "$bindir""afimonio" ]; then
368 #instalo afimonio porque no existe
369 echo "Instalando Afimonio..."
371 cp "$instdir/afimonio" "$bindir/afimonio"
375 fecha1=`cat $afinstal | grep -n FECINS | grep 18 | sed s/\.\*\=\ //`
376 fecha2=`cat $afinstal | grep -n FECINS | grep 26 | sed s/\.\*\=\ //`
377 fecha3=`cat $afinstal | grep -n FECINS | grep 36 | sed s/\.\*\=\ //`
378 usu1=`cat $afinstal | grep -n USERID | grep 17 | sed s/\.\*\=\ //`
379 usu2=`cat $afinstal | grep -n USERID | grep 25 | sed s/\.\*\=\ //`
380 usu3=`cat $afinstal | grep -n USERID | grep 35 | sed s/\.\*\=\ //`
383 ***************************************************************
384 * Se encuentran instalados los siguientes componentes: *
385 * Antifraude.pl instalado el $fecha1 por $usu1 *
386 * Aficonf instalado el $fecha2 por $usu2 *
387 * Antifraude.pl instalado el $fecha3 por $usu3 *
389 * Copyright TPSistemasOp (c) 2004 *
390 ***************************************************************
392 Proceso de instalación cancelado.