]> git.llucax.com Git - z.facultad/75.08/llamadas.git/commitdiff
Subo una version mia con codigo modularizado y algunos cambiazos. Se modularizo el...
authorAlan Kennedy <kennedya@3dgames.com.ar>
Sun, 10 Oct 2004 00:55:49 +0000 (00:55 +0000)
committerAlan Kennedy <kennedya@3dgames.com.ar>
Sun, 10 Oct 2004 00:55:49 +0000 (00:55 +0000)
BUGAFINSTAL [new file with mode: 0755]

diff --git a/BUGAFINSTAL b/BUGAFINSTAL
new file mode 100755 (executable)
index 0000000..6bf0d3a
--- /dev/null
@@ -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<<MARCA
+
+### ERROR ###
+Este proceso de instalacion es para $SISOPTP y su sistema operativo 
+es $CURSIS. Solicite a su proveedor la version adecuada e inicie 
+nuevamente el proceso de instalacion.
+
+MARCA
+       return 1
+       else return 0
+       fi
+}
+
+# Devuelve 0 si se encuentra Perl instalado, 1 otherwise
+function checkPerl() {
+       if [ "perl" = "`type perl | sed s/\"perl is .*\"/\"perl\"/`" ]; then 
+               return 0;
+       else
+       cat <<MARCA
+>> 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 <<MARCA
+
+***********************************************************
+*  SELECCION de COMPONENTES                               *
+*  Por favor seleecione los componentes a ser instalados  *
+*  de a uno por vez, a traves del siguiente menu:         *
+***********************************************************
+>> 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 <<MARCA
+***********************************************************
+* La seleccion de componentes ha finalizado. Se procedera *
+* con la instalacion.                                     *
+***********************************************************
+Componentes a instalar: [ $toinstall ]
+MARCA
+}
+
+################### MAIN SCRIPT CODE ###################
+clear
+SISOPTP=$(uname)
+
+# [STEP1] Verifico el OS vs SCRIP y la presencia de PERL
+echo ">> 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 <<MARCA
+***************************************************************
+*                                                             *
+*            Proceso de instalacion de "Antifraude"           *
+*              Copyright TPSistemasOp (c) 2004                *
+*                                                             *
+***************************************************************
+ A T E N C I O N: Al instalar Antifraude UD. expresa estar
+ en un todo de acuerdo con los terminos y condiciones del 
+ ACUERDO DE LICENCIA DE SOFTWARE incluido en este paquete.
+ Si desea cancelar este proceso oprima 'F' y luego ENTER.
+ Para continuar oprima ENTER.
+MARCA
+key="something"
+while [ "$key" != "" ]; do
+read key
+if [ "$key" = "F" ]; then
+       echo ">> 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<<MARCA
+***************************************************************
+* Se encuentran instalados los siguientes componentes:        *
+* Antifraude.pl instalado el $fecha1 por $usu1 *
+* Aficonf instalado el $fecha2 por $usu2 *
+* Antifraude.pl instalado el $fecha3 por $usu3         *
+*                                                             *
+*               Copyright TPSistemasOp (c) 2004               *
+***************************************************************
+
+Proceso de instalación cancelado.
+MARCA
+       exit 0
+       fi
+fi
+
+# [STEP4] Seleecion de los componentes a instalar
+# TODO: tener en cuenta los que ya estan
+selectModules
+exit 0
+
+# [STEP5] Verifico que perl este instalado
+
+#defino los paths de configuracion e instalacion
+       CURDIR=$PWD
+       CONFDIR="${CURDIR}/conf"
+       INSTDIR="${CURDIR}/inst"
+       #creo el afinstal.conf y le agrego las 2 primeras lineas
+       echo "INSTDIR = $INSTDIR" >> "$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 <<MARCA 
+                       "               Parametros de instalación de $comando           "
+                       "       ==========================================      "
+                       " Nombre del directorio de instalación: $INSTDIR                "
+                       " Nombre del directorio de ejecutables: $BINDIR                 "
+                       " Nombre del directorio de datos: $DATADIR                              "
+                       " Nombre del directorio de configuración: $CONFDIR              "
+                       " Directorio y nombre del archivo de log: $LOGDIR/$LOGNAME"
+                       " Tamaño máximo para el archivo de log: $LOGSIZE                "
+
+                       Si los datos ingresados son correctos oprima solamente ENTER, si desea
+                       modificar alguno de ellos oprima cualquier otra tecla y luego ENTER.
+MARCA
+                       read op         
+
+                       echo "Si desea iniciar la instalación de <$comando>, 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