]> git.llucax.com Git - z.facultad/75.08/llamadas.git/blobdiff - afinstal
Ya utiliza el antifraude.conf
[z.facultad/75.08/llamadas.git] / afinstal
index 8e8f74d29a3b99c9d40656973b99340127a956e4..6b86e327759554146365baed8d87040968cedcdb 100755 (executable)
--- a/afinstal
+++ b/afinstal
@@ -1,16 +1,13 @@
 #!/bin/bash 
 # vim: set softtabstop=4 tabstop=4 
 
+. inst/util.sh
+
 ################# Funciones ###########################
 
 # Devuelve 0 si la ruta fue cambiada y 1 si quedo por defecto
 function askDir() {
-       cat <<MARCA
->> 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
+       leer ">> Ingrese la ruta para los archivos $1" "$2" DIRSELECTED
        if [ -n "$DIRSELECTED" ]; then return 1
        else return 0
        fi
@@ -18,23 +15,27 @@ MARCA
 
 # 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
+       CURSIS="$1"
+       SCRIPTOS="un sistema desconocido"
+       case "$0" in
+               *afinstal)
+                       SCRIPTOS="Linux"
+                       ;;
+               *afinsmac)
+                       SCRIPTOS="Mac"
+                       ;;
+               *afinstaw)
+                       SCRIPTOS="Windows"
+                       ;;
+       esac
+       if [ "$CURSIS" != "$SCRIPTOS" ]; then
                cat<<MARCA
+ERROR!
 
-### 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.
+Este proceso de instalacion es para $SCRIPTOS
+y su sistema operativo es $CURSIS
+Solicite a su proveedor la version adecuada
+e inicie nuevamente el proceso de instalacion.
 
 MARCA
        return 1
@@ -48,13 +49,14 @@ function checkPerl() {
                return 0;
        else
        cat <<MARCA
+ERROR!
 
-"ERROR!!!"
-"Este proceso de instalación solo puede ser"
-"ejecutado si Perl 5 o superior ya esta instalado"
+Este proceso de instalación solo puede ser
+ejecutado si Perl 5 o superior ya esta instalado
+
+Efectúe a instalación de Perl
+Inicie nuevamente el procedimiento de instalación.
 
-"Efectúe a instalación de Perl"
-i"e inicie nuevamente el procedimiento de instalación."
 MARCA
        return 1
        fi
@@ -95,7 +97,7 @@ MARCA
 
 # Permite seleccionar que componentes se instalaran
 function selectModules() {
-       PS3="Seleccione un componente:"
+       PS3="Seleccione un componente: "
        key="S"
        toinstall=""
        while [ "$key" = "S" ] && [ -n "$choices" ]
@@ -130,11 +132,11 @@ MARCA
                        
                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"
+                               echo "Se instalará [$selected]"
+
+                               preguntar "¿Desea agregar otro componente para instalar?" "SsNn" key
+                               if [ "$key" = "s" ]; then
+                                       key="S"
                                fi
                        fi
                fi
@@ -161,23 +163,19 @@ CONFDIR="${CURRDIR}/conf"
 INSTDIR="${CURRDIR}/inst"
 CONFFILE="${CONFDIR}/afinstal.conf"
 DEFAULTDIR=$CURRDIR
+OWNCONFDIR="$HOME/.antifraude/conf"
 havemonio=0
 haveconf=0
 havefraude=0
 
 # [STEP1] Verifico el OS vs SCRIPT y la presencia de PERL
-echo ">> Verificando version del software contra el OS.."
-checkOS
+echo -n ">> Verificando version del software contra el OS... "
+checkOS "$SISOPTP"
 if [ "$?" -ne 0 ]; then 
        abortMessage
        exit 1
 fi
-echo ">> Verificando la existencia de PERL.."
-checkPerl
-if [ "$?" -ne 0 ]; then
-       abortMessage
-       exit 1
-fi
+echo 'OK!'
 echo ">> Proceso de instalacion para $SISOPTP iniciado."
 echo ">> Presione ENTER para continuar"
 read key
@@ -264,6 +262,15 @@ if [ ! -f "$CONFFILE" ] || [ ! -s "$CONFFILE" ]; then
                echo "" >> $CONFFILE
        done            
 fi
+if [ ! -f "$HOME/.antifraude" ]; then
+       mkdir -p "$HOME/.antifraude"
+fi
+if [ ! -f "$HOME/.antifraude/lock" ]; then
+       mkdir -p "$HOME/.antifraude/lock"
+fi
+if [ ! -f "$HOME/.antifraude/conf" ]; then
+       mkdir -p "$HOME/.antifraude/conf"
+fi
 
 # Comienzo la instalacion de cada componente
 comandos=`echo $toinstall | sed s%,%" "%g`
@@ -274,6 +281,16 @@ do
        
        # Directorios FIJOS para todos los componentes
        clear
+       if [ "$comando" = "antifraude.pl" ]; then
+               echo -n ">> Verificando la existencia de PERL... "
+               checkPerl
+               if [ "$?" -ne 0 ]; then
+                       abortMessage
+                       exit 1
+               fi
+               echo 'OK!'
+       fi
+
        cat <<MARCA
 
 ** Iniciando instalacion del componente <$comando>.
@@ -283,15 +300,12 @@ do
 >> 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
-aceptar el siguiente sugerido: $CURRDIR
 MARCA
 
        # Le pido un rootpath donde se instalara este comando en particular
-       read userpath
+       leer ">> Ingrese la ruta de instalación" "$CURRDIR/grupoNN" userpath
        if [ -n "$userpath" ]; then     ROOTPATH=$userpath
-       else ROOTPATH=$CURRDIR
+       else ROOTPATH="$CURRDIR/grupoNN"
        fi
 
        # preparlos los dirs que voy a sugerir
@@ -318,24 +332,19 @@ MARCA
        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
+       leer ">> Nombre del archivo de log" "${comando%.pl}.log" LOGFILE
        if [ -z "$LOGFILE" ]; then
                LOGFILE="${comando%.pl}.log"
        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
+       leer ">> Tamaño máximo para el archivo ($LOGFILE) en MB" "200" LOGSIZE
        if [ -z "$LOGSIZE" ]; then
                LOGSIZE=200
        fi
 
        cat <<MARCA
+
 >>  Parametros de instalacion de $comando
 >>  ===================================================================
 >>  Directorio de instalación: $INSTDIR
@@ -363,19 +372,28 @@ MARCA
 
        # 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}
-               mkdir -p $DATADIR/alarmas
+       mkdir -p "$BINDIR"
+       mkdir -p "$LOGDIR"
+       mkdir -p "$CONFDIR/lock"
+
+       touch "$LOGDIR/$LOGFILE"
+       if [ "$comando" = "antifraude.pl" ]; then
+               mkdir -p "$DATADIR"
+               mkdir -p "$DATADIR"/{aprocesar,enproceso,rechazadas,procesadas}
+               mkdir -p "$DATADIR/alarmas"
        fi
        echo ">> Moviendo Archivos....."
        cp "$INSTDIR/$comando" "$BINDIR"
+       chmod u+x "$BINDIR/$comando"
+
+       # TODO : no se debe copiar solo 1 vez?
        cp "$INSTDIR/oridesti.txt" "$CONFDIR"
 
        # Guardo los datos en el archivo de configuracion
+       ownconffile="$OWNCONFDIR/${comando%.pl}.conf"
+       if [ -f "$ownconffile" ]; then
+               rm -rf "$ownconffile"
+       fi
        userid=$LOGNAME
        fecha=$(date +%d/%m/%Y)
        case $comando in
@@ -391,20 +409,25 @@ MARCA
                        havefraude=1;
                        userfraude=$userid;
                        fechafraude=$fecha;;
-       esac    
+       esac
                
        changeLine "$CONFFILE" "$numline" "Comando $comando"
        numline=$(($numline+1))
        changeLine "$CONFFILE" "$numline" "BINDIR = $BINDIR"
+       echo "BINDIR=\"$BINDIR\"" >> $ownconffile
        numline=$(($numline+1))
        changeLine "$CONFFILE" "$numline" "LOGDIR = $LOGDIR"
+       echo "LOGDIR=\"$LOGDIR\"" >> $ownconffile
        numline=$(($numline+1))
        changeLine "$CONFFILE" "$numline" "LOGFILE = $LOGFILE"
+       echo "LOGFILE=\"$LOGFILE\"" >> $ownconffile
        numline=$(($numline+1))
        changeLine "$CONFFILE" "$numline" "LOGSIZE = $LOGSIZE"
+       echo "LOGSIZE=$LOGSIZE" >> $ownconffile
        numline=$(($numline+1))
        if [ "$comando" = "antifraude.pl" ]; then
                changeLine "$CONFFILE" "$numline" "DATADIR = $DATADIR"
+               echo "DATADIR=\"$DATADIR\"" >> $ownconffile
                numline=$(($numline+1))
                changeLine "$CONFFILE" "$numline" "DATASIZE = "
                numline=$(($numline+1))
@@ -412,8 +435,13 @@ MARCA
        changeLine "$CONFFILE" "$numline" "USERID = $userid"
        numline=$(($numline+1))
        changeLine "$CONFFILE" "$numline" "FECINS = $fecha"
+       echo ">> Instalación del componente $comando completada"
+       read
 done
 
+# Creacion de archivos auxiliares
+echo "0" > "$CONFDIR/umbrales.id"
+
 # [STEP6] Ofrecer arrancar el Afimonio si estan los tres paquetes instalados
 
 # [STEP7] Mostrar en un recuadro que se encuentra instalado en el sistema