X-Git-Url: https://git.llucax.com/z.facultad/75.08/llamadas.git/blobdiff_plain/47240c897cdc382e35a44c288db0d8a31c1ff1a8..a18b3855ba65325afb80830a34c5643c6aec7eb8:/BUGAFINSTAL diff --git a/BUGAFINSTAL b/BUGAFINSTAL index 852738a..e535294 100755 --- a/BUGAFINSTAL +++ b/BUGAFINSTAL @@ -54,16 +54,48 @@ function checkPerl() { "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 } +# 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 < +< Presione una tecla para continuar > MARCA read key } @@ -125,15 +157,23 @@ read key 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 -if [ "$?" -ne 0 ]; then exit 1 +if [ "$?" -ne 0 ]; then + abortMessage + exit 1 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" @@ -158,137 +198,70 @@ key="something" 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 -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 - #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 - 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<> $CONFFILE echo "CONFDIR = $CONFDIR" >> $CONFFILE for n in `seq 3 51`; do echo "" >> $CONFFILE done - exit 0 fi # Comienzo la instalacion de cada componente @@ -352,7 +325,7 @@ MARCA 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" @@ -376,77 +349,59 @@ modificar alguno de ellos oprima cualquier otra tecla y luego ENTER. 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 <, 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