X-Git-Url: https://git.llucax.com/z.facultad/75.08/llamadas.git/blobdiff_plain/8e806b3e1e162d4d7eeab54b750e222e9dc29ee3..a18b3855ba65325afb80830a34c5643c6aec7eb8:/BUGAFINSTAL?ds=sidebyside diff --git a/BUGAFINSTAL b/BUGAFINSTAL index 510a3ac..e535294 100755 --- a/BUGAFINSTAL +++ b/BUGAFINSTAL @@ -4,17 +4,15 @@ ################# 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 "" +function askDir() { + cat <> Nombre del directorio de $1 es: ($3) +Si desea modificarlo reemplaze "$2" por el deseado y presione ENTER, +de lo contrario solo presione ENTER." +MARCA read DIRSELECTED - if [ -n "$DIRSELECTED" ]; then - return 0 - else - return 1 + if [ -n "$DIRSELECTED" ]; then return 1 + else return 0 fi } @@ -50,23 +48,54 @@ function checkPerl() { return 0; else 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." +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 } @@ -128,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" @@ -161,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 @@ -299,7 +269,7 @@ comandos=`echo $toinstall | sed s%,%" "%g` for comando in $comandos do choice='something' - while [ -n "$choice" ] do; + while [ -n "$choice" ]; do # Directorios FIJOS para todos los componentes clear @@ -309,8 +279,8 @@ do ** A continuacion se le permitira establecer la estructura de ** directorios donde se instalara el mismo. ->> Nombre del directorio de instalacion: $INSTDIR ->> Nombre del directorio de configuracion: $CONFDIR +>> Nombre del directorio de instalacion: ($INSTDIR) +>> Nombre del directorio de configuracion: ($CONFDIR) Por favor ingrese un path raiz en donde se crearan los directorios de ejecutables, datos y logs segun corresponda o bien presione ENTER para @@ -325,43 +295,48 @@ MARCA # preparlos los dirs que voy a sugerir BINDIR="${ROOTPATH}/bin" - DATADIR="" LOGDIR="${ROOTPATH}/log" - LOGFILE="${comando}.log" - LOGSIZE="20" - if [ "$comando" = "antifraude.pl" ]; then + DATADIR="" + + # Le muestro el directorio sugerido para los binarios + askDir "ejecutables" "bin" $BINDIR + if [ "$?" -ne 0 ]; then BINDIR="${ROOTPATH}/$DIRSELECTED" + fi + + # Si estoy con antifraude.pl muestro el sugerido para los datos + if [ "$comando" = "antifraude.pl" ]; then DATADIR="${ROOTPATH}/llamadas" + askDir "datos" "llamadas" $DATADIR + if [ "$?" -ne 0 ]; then DATADIR="${ROOTPATH}/$DIRSELECTED" + fi + fi + + # Le muestro el directorio para los logs + askDir "de datos" "log" $LOGDIR + if [ "$?" -ne 0 ]; then LOGDIR="${ROOTPATH}/$DIRSELECTED" + fi + + # Le sugiero el archivo de log + echo ">> Nombre del archivo de log: (${comando%.pl}.log)" + echo "Si desea conservar este nombre presione ENTER, de lo contrario" + echo "ingrese un nuevo nombre y luego presione ENTER" + read LOGFILE + if [ -z "$LOGFILE" ]; then LOGFILE="${comando%.pl}.log" fi - - # Le muestro los sugeridos y permito cambiar el dir en si, no fullpath! -# if cambiaruta "ejecutables" $BINDIR ; then -# BINDIR="${ROOTPATH}/$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 -# + + # 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" + read LOGSIZE + if [ -z "$LOGSIZE" ]; then + LOGSIZE=200 + fi + cat <> Parametros de instalacion de $comando ->> ================================================================= +>> =================================================================== >> Directorio de instalación: $INSTDIR >> Directorio de configuración: $CONFDIR >> Directorio de ejecutables: $BINDIR @@ -372,79 +347,61 @@ MARCA 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 + 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