]> git.llucax.com Git - z.facultad/75.08/llamadas.git/blobdiff - BUGAFINSTAL
Ya tengo en cuenta componentes instalados permitiendo instalar solo los que falten...
[z.facultad/75.08/llamadas.git] / BUGAFINSTAL
index 852738a92728f86d9d17c412c3ca386d8769c584..e535294355b621de34a926e678b2fe3e42a4c7ba 100755 (executable)
@@ -54,16 +54,48 @@ function checkPerl() {
 "ejecutado si Perl 5 o superior ya esta instalado"
 
 "Efectúe a instalación de Perl"
 "ejecutado si Perl 5 o superior ya esta instalado"
 
 "Efectúe a instalación de Perl"
-"e inicie nuevamente el procedimiento de instalación."
+i"e inicie nuevamente el procedimiento de instalación."
 MARCA
        return 1
        fi
 }
 
 MARCA
        return 1
        fi
 }
 
+# Modifica una linea dada de un archivo dado
+function changeLine() {
+       cat $1 | sed "${2}s%.*%$3%" > $1
+}
+
+# Mensaje generico de abort
+function abortMessage {
+       echo ">> Proceso de instalacion cancelado"
+}
+
+# Muestra los componentes instalados, usando vars ya definidas previamente
+function showInstalled {
+cat <<MARCA
+**********************************************************************
+*  $1
+*  Se encuentran instalados los siguientes componentes :
+MARCA
+       if [ "$havefraude" -eq 1 ]; then
+               echo "*  Antifraude.pl instalado el $fechafraude por UID $userfraude"
+       fi
+       if [ "$haveconf" -eq 1 ]; then
+               echo "*  Aficonf instalado el $fechaconf por UID $userconf"
+       fi
+       if [ "$havemonio" -eq 1 ]; then
+               echo "*  Afimonio instalado el $fechaconf por UID $usermonio"
+       fi
+cat <<MARCA
+*
+*                    Copyright TPSistemasOp (c)2004
+**********************************************************************
+MARCA
+}
+
 # Permite seleccionar que componentes se instalaran
 function selectModules() {
        PS3="Seleccione un componente:"
 # Permite seleccionar que componentes se instalaran
 function selectModules() {
        PS3="Seleccione un componente:"
-       choices="AFIMONIO AFICONF ANTIFRAUDE"
        key="S"
        toinstall=""
        while [ "$key" = "S" ] && [ -n "$choices" ]
        key="S"
        toinstall=""
        while [ "$key" = "S" ] && [ -n "$choices" ]
@@ -95,8 +127,8 @@ MARCA
                        if [ -z "$toinstall" ]; then toinstall=$selected
                        else toinstall="$toinstall,$selected"
                        fi
                        if [ -z "$toinstall" ]; then toinstall=$selected
                        else toinstall="$toinstall,$selected"
                        fi
-       
-                       if [ -n "$choices" ]; then
+                       
+               if [ -n "$choices" ]; then
                                echo
                                echo "Se instalara [$selected], si desea seleccionar"
                                echo "otro componente presione \"S\" y luego ENTER, de lo contrario"
                                echo
                                echo "Se instalara [$selected], si desea seleccionar"
                                echo "otro componente presione \"S\" y luego ENTER, de lo contrario"
@@ -116,7 +148,7 @@ cat <<MARCA
 ***********************************************************
 Componentes a instalar: [ $toinstall ]
 
 ***********************************************************
 Componentes a instalar: [ $toinstall ]
 
-< Presione una tecla para continuar>
+< Presione una tecla para continuar >
 MARCA
 read key
 }
 MARCA
 read key
 }
@@ -125,15 +157,23 @@ read key
 clear
 SISOPTP=$(uname)
 CURRDIR=`echo ${0%/*} | sed s%'\.'%$PWD%`
 clear
 SISOPTP=$(uname)
 CURRDIR=`echo ${0%/*} | sed s%'\.'%$PWD%`
+CONFDIR="${CURRDIR}/conf"
+INSTDIR="${CURRDIR}/inst"
+CONFFILE="${CONFDIR}/afinstal.conf"
+DEFAULTDIR=$CURRDIR
 
 
-# [STEP1] Verifico el OS vs SCRIP y la presencia de PERL
+# [STEP1] Verifico el OS vs SCRIPT y la presencia de PERL
 echo ">> Verificando version del software contra el OS.."
 checkOS
 echo ">> Verificando version del software contra el OS.."
 checkOS
-if [ "$?" -ne 0 ]; then exit 1
+if [ "$?" -ne 0 ]; then 
+       abortMessage
+       exit 1
 fi
 echo ">> Verificando la existencia de PERL.."
 checkPerl
 fi
 echo ">> Verificando la existencia de PERL.."
 checkPerl
-if [ "$?" -ne 0 ]; then exit 1
+if [ "$?" -ne 0 ]; then
+       abortMessage
+       exit 1
 fi
 echo ">> Proceso de instalacion para $SISOPTP iniciado."
 echo ">> Presione ENTER para continuar"
 fi
 echo ">> Proceso de instalacion para $SISOPTP iniciado."
 echo ">> Presione ENTER para continuar"
@@ -158,137 +198,70 @@ key="something"
 while [ "$key" != "" ]; do
 read key
 if [ "$key" = "F" ]; then
 while [ "$key" != "" ]; do
 read key
 if [ "$key" = "F" ]; then
-       echo ">> Proceso de instalacion cancelado"
+       abortMessage
        exit 0
 fi
 done
 
 # [STEP3] Chequeamos si hay componentes ya instalados
        exit 0
 fi
 done
 
 # [STEP3] Chequeamos si hay componentes ya instalados
-if [ "2" = "3" ]; 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"
+if [ -f "$CONFFILE" ] && [ -s "$CONFFILE" ]; then
+       #Busco los nombres de los binarios
+       binfraude=`grep -n "Comando" "$CONFFILE" | grep 10 | sed s%.*Comando.%%`
+       binconf=`grep -n "Comando" "$CONFFILE" | grep 20 | sed s%.*Comando.%%`
+       binmonio=`grep -n "Comando" "$CONFFILE" | grep 30 | sed s%.*Comando.%%`
+       #Busco donde deberian estar instalados
+       dirfraude=`grep -n "BINDIR" "$CONFFILE" | grep 11 | sed 's%.*= %%'`
+       dirconf=`grep -n "BINDIR" "$CONFFILE" | grep 21 | sed 's%.*= %%'`
+       dirmonio=`grep -n "BINDIR" "$CONFFILE" | grep 31 | sed 's%.*= %%'`
+       # Verifico finalmente si esta alli el archivo, en caso negativo, habilito
+    # la posibilidad de instalar ese componente
+       if [ ! -f "${dirmonio}/$binmonio" ]; then
+               choices="AFIMONIO"
+               havemonio=0
+       else
+               havemonio=1
+               usermonio=`grep -n "USERID" "$CONFFILE" | grep 35 | sed 's%.*= %%'`
+               fechamonio=`grep -n "FECINS" "$CONFFILE" | grep 36 | sed 's%.*= %%'`
        fi
 
        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"
+       if [ ! -f "${dirfraude}/$binfraude" ]; then
+               choices="${choices} ANTIFRAUDE"
+               havefraude=0
+       else
+               havefraude=1
+               userfraude=`grep -n "USERID" "$CONFFILE" | grep 17 | sed 's%.*= %%'`
+               fechafraude=`grep -n "FECINS" "$CONFFILE" | grep 18 | sed 's%.*= %%'`
        fi
        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
+       if [ ! -f "${dirconf}/$binconf" ]; then
+               choices="${choices} AFICONF"
+               haveconf=0
+       else
+               haveconf=1
+               userconf=`grep -n "USERID" "$CONFFILE" | grep 25 | sed 's%.*= %%'`
+               fechaconf=`grep -n "FECINS" "$CONFFILE" | grep 26 | sed 's%.*= %%'`
        fi
        fi
+       choices=${choices% }
+       choices=${choices# }
 fi
 
 # [STEP4] Seleecion de los componentes a instalar
 fi
 
 # [STEP4] Seleecion de los componentes a instalar
-# TODO: tener en cuenta los que ya estan
+# TODO: tener en cuenta los que ya estan y no permitir elegirlos
+if [ -z "$choices" ]; then
+       showInstalled
+       abortMessage
+       exit 0
+fi
 selectModules
 
 # [STEP5] Definir paths de cada componente e instalarlo guardando
 #         la informacion pertinente en el afinstal.conf
 selectModules
 
 # [STEP5] Definir paths de cada componente e instalarlo guardando
 #         la informacion pertinente en el afinstal.conf
-CONFDIR="${CURRDIR}/conf"
-INSTDIR="${CURRDIR}/inst"
-CONFFILE="${CONFDIR}/afinstal.conf"
-DEFAULTDIR=$CURRDIR
-
-# Si no existe el afinstal.conf, lo creo y agrego las primeras 2 lineas
-if [ ! -f "$CONFFILE" ]; then
+if [ ! -f "$CONFFILE" ] || [ ! -s "$CONFFILE" ]; then
        touch "$CONFFILE"
        echo "INSTDIR = $INSTDIR" >> $CONFFILE
        echo "CONFDIR = $CONFDIR" >> $CONFFILE
        for n in `seq 3 51`; do
                echo "" >> $CONFFILE
        done            
        touch "$CONFFILE"
        echo "INSTDIR = $INSTDIR" >> $CONFFILE
        echo "CONFDIR = $CONFDIR" >> $CONFFILE
        for n in `seq 3 51`; do
                echo "" >> $CONFFILE
        done            
-       exit 0
 fi
 
 # Comienzo la instalacion de cada componente
 fi
 
 # Comienzo la instalacion de cada componente
@@ -352,7 +325,7 @@ MARCA
                LOGFILE="${comando%.pl}.log"
        fi
 
                LOGFILE="${comando%.pl}.log"
        fi
 
-       # Le sugieron un size para el logfile
+       # Le sugiero un size para el logfile
        echo ">> Tamaño máximo para el archivo ($LOGFILE) en MB: 200"
        echo "Si desea conservar este valor presione ENTER, de lo contrario ingrese"
        echo "un nuevo valor y luego presione ENTER"
        echo ">> Tamaño máximo para el archivo ($LOGFILE) en MB: 200"
        echo "Si desea conservar este valor presione ENTER, de lo contrario ingrese"
        echo "un nuevo valor y luego presione ENTER"
@@ -376,77 +349,59 @@ modificar alguno de ellos oprima cualquier otra tecla y luego ENTER.
 MARCA
        read choice
        done
 MARCA
        read choice
        done
-done
-
-############## NO DAR BOLA DE ACA HACIA ABAJO #####################
-exit 0
-
-linea=10
-i=0
-fecha=$(date)
-
-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."
+       
+       cat <<MARCA
+Si desea iniciar la instalación de <$comando>, oprima ENTER, si desea
+cancelar el proceso oprima cualquier otra tecla y luego ENTER.
+MARCA
+       read choice
+       if [ -n "$choice" ]; then
+               abortMessage
+               exit 1
+       fi
 
 
-read op
+       # Comienzo a crear la estructura de directorios definida (Check permisos!!)
+       echo ">> Creando Estructura de Directorio...."
+       mkdir -p $BINDIR
+       mkdir -p $LOGDIR
+       touch $LOGDIR/$LOGFILE
+       if [ $comando = "antifraude.pl" ]; then
+               mkdir -p $DATADIR
+               mkdir -p $DATADIR/{aprocesar,enproceso,rechazadas,procesadas}
+       fi
+       echo ">> Moviendo Archivos....."
+       cp $INSTDIR/$comando $BINDIR
+       cp $INSTDIR/umbrales.param $CONFDIR
+       #cp $INSTDIR/*.data $DATADIR/aprocesar
+
+       # Guardo los datos en el archivo de configuracion
+       case $comando in
+               "antifraude.pl" ) numline=10;;
+               "aficonf" ) numline=20;;
+               "afimonio" ) numline=30;;
+       esac    
+               
+       changeLine "$CONFFILE" "$numline" "Comando $comando"
+       numline=$(($numline+1))
+       changeLine "$CONFFILE" "$numline" "BINDIR = $BINDIR"
+       numline=$(($numline+1))
+       changeLine "$CONFFILE" "$numline" "LOGDIR = $LOGDIR"
+       numline=$(($numline+1))
+       changeLine "$CONFFILE" "$numline" "LOGFILE = $LOGFILE"
+       numline=$(($numline+1))
+       changeLine "$CONFFILE" "$numline" "LOGSIZE = $LOGSIZE"
+       numline=$(($numline+1))
+       if [ "$comando" = "antifraude.pl" ]; then
+               changeLine "$CONFFILE" "$numline" "DATADIR = $DATADIR"
+               numline=$(($numline+1))
+               changeLine "$CONFFILE" "$numline" "DATASIZE = "
+               numline=$(($numline+1))
+       fi
+       changeLine "$CONFFILE" "$numline" "USERID = `id | sed 's/(.*//;s/uid=//'`"
+       numline=$(($numline+1))
+       changeLine "$CONFFILE" "$numline" "FECINS = `date`"
+done
 
 
-if [ -n "$op" ]; then
-       echo "Proceso de instalación cancelado"
-       exit 0
-fi
+# [STEP6] Ofrecer arrancar el Afimonio si estan los tres paquetes instalados
 
 
-# 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))
-       
-# 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/.*= //'`
-done   
+# [STEP7] Mostrar en un recuadro que se encuentra instalado en el sistema