From: Alan Kennedy Date: Sun, 10 Oct 2004 00:55:49 +0000 (+0000) Subject: Subo una version mia con codigo modularizado y algunos cambiazos. Se modularizo el... X-Git-Tag: svn_import~155 X-Git-Url: https://git.llucax.com/z.facultad/75.08/llamadas.git/commitdiff_plain/22fd66aa8fbf11c74d642a8948595601c135c34a?ds=inline Subo una version mia con codigo modularizado y algunos cambiazos. Se modularizo el chequeo de OS, chequeo de Perl y el menu de seleccion de componentes a instalar que antes no existia. La verificacion de los componentes instalados en STEP3 aun no la pude ver, pero no se asusten que vuela de ahi o bien se reduce bastante, ahora me pongo --- diff --git a/BUGAFINSTAL b/BUGAFINSTAL new file mode 100755 index 0000000..6bf0d3a --- /dev/null +++ b/BUGAFINSTAL @@ -0,0 +1,409 @@ +#!/bin/bash +# vim: set softtabstop=4 tabstop=4 + +################# Funciones ########################### + +# Devuelve 0 si la ruta fue cambiada y 1 si quedo por defecto +function cambiaruta() { + echo "" + echo "Nombre del directorio $1 es: ($2)" + echo "Si desea modificarlo ingrese la ruta completa deseada y luego presione ENTER" + echo "de lo contrario presione ENTER." + echo "" + read DIRSELECTED + if [ -n "$DIRSELECTED" ]; then + return 0 + else + return 1 + fi +} + +# Devuelve 0 si el script y el OS matchean, 1 otherwise +function checkOS() { + if echo $0 | egrep -q 'AFINSTAL$'; then + SCRIPTOS="Linux" + fi + if echo $0 | egrep -q 'AFINSTAM$'; then + SCRIPTOS="Mac" + fi + if echo $0 | egrep -q 'AFINSTAW$'; then + SCRIPTOS="Windows" + fi + + if [ "$SISOPTP" != "$SCRIPTOS" ]; then + cat<> Verificando la existencia de PERL .. FAILED! + +"ERROR!!!" +"Este proceso de instalación solo puede ser" +"ejecutado si Perl 5 o superior ya esta instalado" + +"Efectúe a instalación de Perl" +"e inicie nuevamente el procedimiento de instalación." +MARCA + return 1 + fi +} + +# Permite seleccionar que componentes se instalaran +function selectModules() { + PS3="Seleccione un componente:" + choices="AFIMONIO AFICONF ANTIFRAUDE" + key="S" + toinstall="" + while [ "$key" = "S" ] && [ -n "$choices" ] + do + clear + cat <> Se instalaran: $toinstall + +MARCA + select REPLY in $choices + do + case $REPLY in + "AFIMONIO" ) selected="AFIMONIO";; + "AFICONF" ) selected="AFICONF";; + "ANTIFRAUDE" ) selected="ANTIFRAUDE";; + * ) selected="INVALID";; + esac + break + done + + if [ $selected != "INVALID" ]; then + choices=`echo $choices | sed s/$selected//` + if [ -z "$toinstall" ]; then toinstall=$selected + else toinstall="$toinstall,$selected" + fi + + if [ -n "$choices" ]; then + echo + echo "Se instalara [$selected], si desea seleccionar" + echo "otro componente presione \"S\" y luego ENTER, de lo contrario" + echo "presione solo ENTER para comenzar a instalar los componentes" + read key + if [ "$key" = "s" ]; then key="S" + fi + fi + fi + done + if [ -n "$key" ]; then echo + fi +cat <> Verificando version del software contra el OS.." +checkOS +if [ "$?" -ne 0 ]; then exit 1 +fi +echo ">> Verificando la existencia de PERL.." +checkPerl +if [ "$?" -ne 0 ]; then exit 1 +fi +echo ">> Proceso de instalacion para $SISOPTP iniciado." +echo ">> Presione ENTER para continuar" +read key + +# [STEP2] License Agreements +cat <> Proceso de instalacion cancelado" + exit 0 +fi +done + +# [STEP3] Chequeamos si hay componentes ya instalados +if [ -f "./conf/afinstal.conf" ]; then + #busco paquetes instalados. Leo afinstal.conf para ver que hay + #como el archivo existe, tiene que tener alguna info almacenada.. + instdir=`cat $afinstal | grep -n INSTDIR | grep 1 | sed s/\.\*\=\ //` + confdir=`cat $afinstal | grep -n CONFDIR | grep 2 | sed s/\.\*\=\ //` + #Busco los binarios + comp=0 + anti=0 + afic=0 + afim=0 + bindir=`cat $afinstal | grep -n BINDIR | grep 11 | sed s/\.\*\=\ //` + logdir=`cat $afinstal | grep -n LOGDIR | grep 12 | sed s/\.\*\=\ //` + logname=`cat $afinstal | grep -n LOGNAME | grep 13 | sed s/\.\*\=\ //` + logsize=`cat $afinstal | grep -n BINDIR | grep 14 | sed s/\.\*\=\ //` + + # Si habia algo instalado, la informacion del los directorios quedo + # almacenada, pues es igual para todos los scripts. Excepto el directorio de + # datos para antifraude. + if [ ! -f "$bindir""antifraude.pl" ]; then + #instalo antifraude porque no existe + echo "Instalando Antifraude..." + anti=1 + cp "$instdir/antifraude.pl" "$bindir/antifraude.pl" + fi + if [ ! -f "$bindir""aficonf" ]; then + #instalo aficonf porque no existe + echo "Instalando Aficonf..." + afic=1 + cp "$instdir/aficonf" "$bindir/aficonf" + fi + if [ ! -f "$bindir""afimonio" ]; then + #instalo afimonio porque no existe + echo "Instalando Afimonio..." + afim=1 + cp "$instdir/afimonio" "$bindir/afimonio" + fi + + #hay que loguear lo que se instalo + comp=$(($anti + $afic + $afim)) + if [ $anti != 0 ]; then + echo "Ingrese la ruta completa para el directorio de datos" + read datadir + while [ ! -d "$datadir" ]; do + echo "La ruta especificada no existe, ingrese un directorio existente" + read datadir + done + echo "Ingrese tamaño máximo de datos" + read datasize + fecha=$(date) + cat "$confdir/afinstal.conf" | sed "10s/.*/Comando antifraude.pl/" > "$confdir/afinstal.conf" + cat "$confdir/afinstal.conf" | sed "11s(.*(BINDIR = $bindir(" > "$confdir/afinstal.conf" + cat "$confdir/afinstal.conf" | sed "12s(.*(LOGDIR = $logdir(" > "$confdir/afinstal.conf" + cat "$confdir/afinstal.conf" | sed "13s(.*(LOGNAME = $logname(" > "$confdir/afinstal.conf" + cat "$confdir/afinstal.conf" | sed "14s(.*(LOGSIZE = $logsize(" > "$confdir/afinstal.conf" + cat "$confdir/afinstal.conf" | sed "15s(.*(DATADIR = $datadir(" > "$confdir/afinstal.conf" + cat "$confdir/afinstal.conf" | sed "16s(.*(DATASIZE = $datasize(" > "$confdir/afinstal.conf" + cat "$confdir/afinstal.conf" | sed "17s(.*(USERID = $USER(" > "$confdir/afinstal.conf" + cat "$confdir/afinstal.conf" | sed "18s(.*(FECINS = $fecha(" > "$confdir/afinstal.conf" + fi + if [ $afic != 0 ]; then + fecha=$(date) + cat "$confdir/afinstal.conf" | sed "20s/.*/Comando aficonf/" > "$confdir/afinstal.conf" + cat "$confdir/afinstal.conf" | sed "21s(.*(BINDIR = $bindir(" > "$confdir/afinstal.conf" + cat "$confdir/afinstal.conf" | sed "22s(.*(LOGDIR = $logdir(" > "$confdir/afinstal.conf" + cat "$confdir/afinstal.conf" | sed "23s(.*(LOGNAME = $logname(" > "$confdir/afinstal.conf" + cat "$confdir/afinstal.conf" | sed "24s(.*(LOGSIZE = $logsize(" > "$confdir/afinstal.conf" + cat "$confdir/afinstal.conf" | sed "25s(.*(USERID = $USER(" > "$confdir/afinstal.conf" + cat "$confdir/afinstal.conf" | sed "26s(.*(FECINS = $fecha(" > "$confdir/afinstal.conf" + fi + if [ $afim != 0 ]; then + fecha=$(date) + cat "$confdir/afinstal.conf" | sed "30s/.*/Comando afimonio/" > "$confdir/afinstal.conf" + cat "$confdir/afinstal.conf" | sed "31s(.*(BINDIR = $bindir(" > "$confdir/afinstal.conf" + cat "$confdir/afinstal.conf" | sed "32s(.*(LOGDIR = $logdir(" > "$confdir/afinstal.conf" + cat "$confdir/afinstal.conf" | sed "33s(.*(LOGNAME = $logname(" > "$confdir/afinstal.conf" + cat "$confdir/afinstal.conf" | sed "34s(.*(LOGSIZE = $logsize(" > "$confdir/afinstal.conf" + cat "$confdir/afinstal.conf" | sed "35s(.*(USERID = $USER(" > "$confdir/afinstal.conf" + cat "$confdir/afinstal.conf" | sed "36s(.*(FECINS = $fecha(" > "$confdir/afinstal.conf" + fi + if [ $comp == 0 ]; then + + #busco los datos + fecha1=`cat $afinstal | grep -n FECINS | grep 18 | sed s/\.\*\=\ //` + fecha2=`cat $afinstal | grep -n FECINS | grep 26 | sed s/\.\*\=\ //` + fecha3=`cat $afinstal | grep -n FECINS | grep 36 | sed s/\.\*\=\ //` + usu1=`cat $afinstal | grep -n USERID | grep 17 | sed s/\.\*\=\ //` + usu2=`cat $afinstal | grep -n USERID | grep 25 | sed s/\.\*\=\ //` + usu3=`cat $afinstal | grep -n USERID | grep 35 | sed s/\.\*\=\ //` + +cat<> "$CONFDIR/afinstal.conf" + echo "CONFDIR = $CONFDIR" >> "$CONFDIR/afinstal.conf" + for n in `seq 3 51` + do + echo "" >> "$CONFDIR/afinstal.conf" + done + linea=10 + i=0 + fecha=$(date) + for comando in antifraude.pl afimonio aficonf ; do + op="a" + while [ -n "$op" ]; do + #Almance el path actual + BINDIR="${CURDIR}/bin" + DATADIR="${CURDIR}/llamadas" + LOGDIR="${CURDIR}/log" + + echo "La ruta del directorio de instalación es: ($INSTDIR)" + echo "La ruta del directorio de configuración es: ($CONFDIR)" + echo "La ruta del directorio de ejecutables es: ($BINDIR)" + DIRSELECTED="" + if cambiaruta "ejecutables" $BINDIR ; then + BINDIR=$DIRSELECTED + fi + if cambiaruta "de datos" $DATADIR ; then + DATADIR=$DIRSELECTED + fi + if cambiaruta "de log" $LOGDIR ; then + LOGDIR=$DIRSELECTED + fi + echo "Nombre del archivo de log: (${comando}.log)" + echo "Si desea conservar este nombre presione ENTER, de lo " + echo "contrario ingrese un nuevo nombre y luego ENTER" + read LOGNAME + if [ -z "$logname" ]; then + LOGNAME="${comando}.log" + fi + echo "Tamaño máximo para el archivo <$LOGNAME> (Mb): 20Mb" + echo "Si desea conservar este valor presione ENTER, de lo " + echo "contrario ingrese un nuevo valor y luego ENTER" + read LOGSIZE + if [ -z "$LOGSIZE" ]; then + LOGSIZE=20 + fi + + cat <, oprima" + echo "solamente ENTER, si desea cancelar el proceso oprima" + echo "cualquier otra tecla y luego ENTER." + + read op + + if [ -n "$op" ]; then + echo "Proceso de instalación cancelado" + exit 0 + fi + + # Cremos los directorios para este comando + echo "Creando Estructura de Directorio...." + mkdir -p $BINDIR + mkdir -p $DATADIR + mkdir -p $DATADIR/{aprocesar,enproceso,rechazadas,procesadas} + mkdir -p $LOGDIR + touch $LOGDIR/$LOGNAME + echo "Moviendo Archivos....." + cp $INSTDIR/$comando $BINDIR + #cp $INSTDIR/umbrales.param $CONFDIR + #cp $INSTDIR/*.data $DATADIR/aprocesar + + numlinea=$(($linea+$i)) + cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s/.*/Comando $comando/" > "$CONFDIR/afinstal.conf" + i=$(($i+1)) + numlinea=$(($linea+$i)) + cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(BINDIR = $BINDIR(" > "$CONFDIR/afinstal.conf" + i=$(($i+1)) + numlinea=$(($linea+$i)) + cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(LOGDIR = $LOGDIR(" > "$CONFDIR/afinstal.conf" + i=$(($i+1)) + numlinea=$(($linea+$i)) + cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(LOGNAME = $LOGNAME(" > "$CONFDIR/afinstal.conf" + i=$(($i+1)) + numlinea=$(($linea+$i)) + cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(LOGSIZE = $LOGSIZE(" > "$CONFDIR/afinstal.conf" + if [ "$FILE" = "antifraude.pl" ]; then + i=$(($i+1)) + numlinea=$(($linea+$i)) + cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(DATADIR = $DATADIR(" > "$CONFDIR/afinstal.conf" + i=$(($i+1)) + numlinea=$(($linea+$i)) + cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(DATASIZE = (" > "$CONFDIR/afinstal.conf" + fi + i=$(($i+1)) + numlinea=$(($linea+$i)) + cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(USERID = $USER(" > "$CONFDIR/afinstal.conf" + i=$(($i+1)) + numlinea=$(($linea+$i)) + cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(FECINS = $fecha(" > "$CONFDIR/afinstal.conf" + i=0 + linea=$(($linea+10)) + done #for + done #while + # Termino la instalacion, muestro informacion. + j=10 + echo " ***************************************************************** " + echo " * Proceso de instalacion concluido * " + comandos=`cat "$CONFDIR/afinstal.conf" | grep Comando ` + for i in 17 25 35 ; do + + fecha=`cat "$CONFDIR/afinstal.conf" | grep -n FECINS | grep $i | sed 's/.*= //'` + i=$(($i +1)) + usu=`cat "$CONDIR/afinstal.conf" | grep -n USERID | grep $i | sed 's/.*= //'` + echo " * + done