]> git.llucax.com Git - z.facultad/75.08/llamadas.git/blobdiff - afinstal
Se agrega locking
[z.facultad/75.08/llamadas.git] / afinstal
index 0d70a057c9544520f78a35edac41cb3362b9110a..f803f7dc725e49942bb346b9b5bed0abfb312e87 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
@@ -62,7 +64,7 @@ MARCA
 
 # Modifica una linea dada de un archivo dado
 function changeLine() {
-       cat $1 | sed "${2}s%.*%$3%" > $1
+       cat "$1" | sed "${2}s%.*%$3%" > "$1"
 }
 
 # Mensaje generico de abort
@@ -78,24 +80,24 @@ cat <<MARCA
 *  Se encuentran instalados los siguientes componentes :
 MARCA
        if [ "$havefraude" -eq 1 ]; then
-               echo "*  Antifraude.pl instalado el $fechafraude por UID $userfraude"
+               echo "*  Antifraude.pl instalado el $fechafraude por $userfraude"
        fi
        if [ "$haveconf" -eq 1 ]; then
-               echo "*  Aficonf instalado el $fechaconf por UID $userconf"
+               echo "*  Aficonf instalado el $fechaconf por $userconf"
        fi
        if [ "$havemonio" -eq 1 ]; then
-               echo "*  Afimonio instalado el $fechaconf por UID $usermonio"
+               echo "*  Afimonio instalado el $fechaconf por $usermonio"
        fi
 cat <<MARCA
 *
-*                    Copyright TPSistemasOp (c)2004
+*                    Copyleft TPSistemasOp (c) 2004
 **********************************************************************
 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
@@ -166,18 +168,13 @@ 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
@@ -187,7 +184,7 @@ cat <<MARCA
 ***************************************************************
 *                                                             *
 *            Proceso de instalacion de "Antifraude"           *
-*              Copyright TPSistemasOp (c) 2004                *
+*               Copyleft TPSistemasOp (c) 2004                *
 *                                                             *
 ***************************************************************
  A T E N C I O N: Al instalar Antifraude UD. expresa estar
@@ -199,11 +196,11 @@ cat <<MARCA
 MARCA
 key="something"
 while [ "$key" != "" ]; do
-read key
-if [ "$key" = "F" ]; then
-       abortMessage
-       exit 0
-fi
+       read key
+       if [ "$key" = "F" ]; then
+               abortMessage
+               exit 0
+       fi
 done
 
 # [STEP3] Chequeamos si hay componentes ya instalados
@@ -274,6 +271,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 +290,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 +322,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,34 +362,39 @@ 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 "$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
-       cp $INSTDIR/umbrales.param $CONFDIR
-       #cp $INSTDIR/*.data $DATADIR/aprocesar
+       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
-       userid=`id | sed 's/(.*//;s/uid=//'`
-       fecha=$(date)
+       userid=$LOGNAME
+       fecha=$(date +%d/%m/%Y)
        case $comando in
-               "afimonio" )    numline=30;
-                                               havemonio=1;
-                                       usermonio=$userid;
-                                       fechamonio=$fecha;;
-               "aficonf" )     numline=20;
-                                       haveconf=1;
-                               userconf=$userid;
-                               fechaconf=$fecha;;
-               "antifraude.pl" )       numline=10;
-                                                       havefraude=1;
-                                                       userfraude=$userid;
-                                                       fechafraude=$fecha;;
+               "afimonio" ) numline=30;
+                       havemonio=1;
+                       usermonio=$userid;
+                       fechamonio=$fecha;;
+               "aficonf" ) numline=20;
+                       haveconf=1;
+                       userconf=$userid;
+                       fechaconf=$fecha;;
+               "antifraude.pl" ) numline=10;
+                       havefraude=1;
+                       userfraude=$userid;
+                       fechafraude=$fecha;;
        esac    
                
        changeLine "$CONFFILE" "$numline" "Comando $comando"
@@ -412,8 +416,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