]> git.llucax.com Git - z.facultad/75.08/llamadas.git/blobdiff - AFINSTAL
El usuario ya puede establecer todos los directorios de cada programa a instalar...
[z.facultad/75.08/llamadas.git] / AFINSTAL
index 493e2de06f0a207cbbc1de855938586b9ad440bc..2883a2711914eaf64925ceaf2e82c63f1a37ae6d 100755 (executable)
--- a/AFINSTAL
+++ b/AFINSTAL
 #!/bin/bash 
 # vim: set softtabstop=4 tabstop=4 
+# variables de entorno
+#echo "editor "$EDITOR
+#echo "env "$ENV
+#echo "home "$HOME
+#echo "host "$HOSTNAME
+#echo "logname "$LOGNAME
+#echo "user " $USER
+#echo "mail "$MAIL
+#echo "path "$PATH
+#echo "pwd "$PWD
+#echo "shell "$SHELL
+#echo "term "$TERM
+#echo "time out" $TMOUT
 
-#FUNCIONES AUXILIARES 
+#Includes
+. util.sh
 
-
-#Verifico que el sistema operativo sea correcto.
-if echo $0 | egrep -q 'AFINSTAL$'; then
+# chequeo sistema operativo
+echo "Chequeando SO ..."
+if [ -z  "`echo $0 | sed \"s/.*AFINSTAL$//\"`" ]; then
        SISOPTP="Linux"
-fi
-if echo $0 | egrep -q 'AFINSTAM$'; then
-       SISOPTP="Mac"
-fi
-if echo $0 | egrep -q 'AFINSTAW$'; then
+elif [ -z  "`echo $0 | sed \"s/.*AFINSTAW$//\"`" ]; then
        SISOPTP="Windows"
+elif [ -z  "`echo $0 | sed \"s/.*AFINSTAM$//\"`" ]; then
+       SISOPTP="Mac"
 fi
 
 CURSIS=$(uname)
+#echo "cursis $CURSIS"
 # comienzo instalacion si el sistema es correcto
 if [ "$SISOPTP" != "$CURSIS" ]; then
-cat<<MARCA
-"ERROR !!!"
-"Este proceso de instalación es para $SISOPTP"
-"y su sistema operativo es $CURSIS"
-"Solicite a su proveedor la versión adecuada"
-"e inicie nuevamente el proceso de instalación"
-MARCA
-exit 1
+       echo "ERROR !!!"
+       echo "Este proceso de instalación es para $SISOPTP"
+       echo "y su sistema operativo es $CURSIS"
+       echo "Solicite a su proveedor la versión adecuada"
+       echo "e inicie nuevamente el proceso de instalación"
+       exit 1
 else
        echo "Proceso de instalación para $SISOPTP"
-       echo "Presione una tecla para continuar"
-       read op
+       echo "Presione ENTER para continuar"    
 fi
 
+echo "*******************************************************"
+echo "*                                                     *"
+echo "*     Proceso de instalación de \"Antifraude\"        *"
+echo "*      Copyright TPSistemasOp  (c)2004                *"
+echo "*                                                     *"
+echo "*******************************************************"
+echo "A T E N C I O N: Al instalar Antifraude UD. expresa estar"
+echo "en un todo de acuerdo con los términos y condiciones del"
+echo "\"ACUERDO DE LICENCIA DE SOFTWARE\" incluido en este paquete"
+echo ""
+echo "Si desea cancelar este proceso oprima 'F' y luego ENTER"
+echo "Para continuar oprima 'C' y luego ENTER"
+
+preguntar "Su opción" "cCfF" opcion
+if [ "$opcion" == "F" ] || [ "$opcion" == "f" ]; then 
+       echo "Proceso de instalación cancelado"
+       exit 0
+fi     
+
+#Verifico que Perl este instalado
+if [ "esta" == "`type perl | sed s/\"perl is .*\"/\"esta\"/`" ]; then 
+       echo "perl esta instalado"
+else
+       echo "ERROR !:"
+       echo "Este proceso de instalación solo puede ser"
+       echo "ejecutado si Perl 5 o superior ya esta instalado"
+       echo ""
+       echo "Efectúe a instalación de Perl"
+       echo "e inicie nuevamente el procedimiento de instalación."
+       exit 1 
+fi
+
+PATH_GENERAL=$HOME"/antifraude"        
+INSTDIR=$PATH_GENERAL"/inst/"
+CONFDIR=$PATH_GENERAL"/conf/"
+BINDIR=$PATH_GENERAL"/bin/"
+DATADIR=$PATH_GENERAL"/data"
+LOGDIR=$PATH_GENERAL"/log"
+LOGNAME="comando.log"
+LOGSIZE=10
+
+again="s"
+while [ "$again" == "s" ]; do
+       op="s"
+       while [ "$op" == "s" ]; do
+               #muestro el directorio donde se instalara el sistema
+               #
+               # Asi queda mas corto ;-)
+               #
+               leer "Nombre del directorio de instalación" "$INSTDIR" INSTDIR
 
-#Verifico si hay algo instalado 
-#busco en el archivo afinstal.conf (desde donde???) por ahora desde el home
-
-afinstal=`find $HOME -name 'afinstal.conf'`
-
-if [ -n "$afinstal" ]; then 
-       #busco paquetes instalados. Leo afinstal.conf para ver que hay
-       #Busco los binarios
-       comp=0
-       bindir=`cat $afinstal | grep -n  BINDIR | grep 11 | sed s/\.\*\=\ //`
-       if [ ! -f "$bindir""antifraude.pl" ]; then
-               #instalo antifraude porque no existe
-               echo "Instalando Antifraude..."
-               comp=$(($comp + 1))
-       fi
-       if [ ! -f "$bindir""aficonf" ]; then
-               #instalo aficonf porque no existe
-               echo "Instalando Aficonf..."
-               comp=$(($comp + 1)) 
-       fi
-       if [ ! -f "$bindir""afimonio" ]; then
-               #instalo afimonio porque no existe
-               echo "Instalando Afimonio..."
-               comp=$(($comp + 1))
-       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               *
-***************************************************************
+               echo "Nombre del directorio de configuración ($CONFDIR), ingrese una nueva ruta o ENTER para continuar: $PATH_GENERAL/<nueva ruta>"
+               read AUX2
+               if [ ! -z $AUX2 ]; then 
+                       CONFDIR="$PATH_GENERAL/$AUX2"
+               fi      
+               echo "Nombre del directorio de ejecutables ($BINDIR), ingrese una nueva ruta o ENTER para continuar: $PATH_GENERAL/<nueva ruta>"
+               read AUX3
+               if [ ! -z $AUX3 ]; then 
+                       BINDIR="$PATH_GENERAL/$AUX3"
+               fi      
+               echo "Desea volver a modificar?(s para modificar, ENTER para continuar)"
+               read op
+done #fin de los primeros directorios
+       op="s"
+       while [ "$op" == "s" ]; do
+               echo "Nombre del directorio de datos ($DATADIR),ingrese una nueva ruta o ENTER para continuar: $PATH_GENERAL/<nueva ruta>"
+               read AUX4
+               if [ ! -z $AUX4 ]; then 
+                       DATADIR="$PATH_GENERAL/$AUX4"
+               fi      
+               echo "Nombre del directorio de log ($LOGDIR), ingrese una nueva ruta o ENTER para continuar: $PATH_GENERAL/<nueva ruta>"
+               read AUX5
+               if [ ! -z $AUX5 ]; then 
+                       LOGDIR="$PATH_GENERAL/$AUX5"
+               fi      
+               echo "Nombre del archivo de log ($LOGNAME), ingrese un nuevo nombre o ENTER para continuar: <nuevo nombre>"
+               read AUX6
+               if [ ! -z $AUX6 ]; then 
+                       LOGNAME="$AUX6"
+               fi      
+               echo "Tamaño máximo del archivo de log ($LOGSIZE) en MegaBytes, ingrese un nuevo tamaño o ENTER para continuar: <nuevo tamaño>"
+               #tengo que verificar que sea un numero
+               read AUX7
+               while [ ! -z "`echo $AUX7 | sed \"s/\"[0-9]*\"//\"`" ]; do
+                       echo "Debe ingresar un numero"
+                       read AUX7
+               done
+               if [ ! -z $AUX7 ]; then 
+                       LOGSIZE="$AUX7"                 
+               fi
+               
+               echo "Desea volver a modificar?(s para modificar, ENTER para continuar)"
+               read op
+       done #fin de los segundos directorios
+       clear
+
+       echo "\"   PARAMETROS DE LA INSTALACION DE ANTIFRAUDE    \""
+       echo "\"   ==========================================\""
+       echo "\"Nombre del directorio de instalación: $INSTDIR\""
+       echo "\"Nombre del directorio de ejecutables: $BINDIR\""
+       echo "\"Nombre del directorio de datos: $DATADIR\""
+       echo "\"Nombre del directorio de configuración: $CONFDIR\""
+       echo "\"Directorio y nombre del archivo de log: $LOGDIR/$LOGNAME\""
+       echo "\"Tamaño máximo para el archivo de log: $LOGSIZE Mbytes\""
+       echo "\"Si los datos son correctos oprima solamente ENTER, si desea modificar
+       alguno de ellos oprima cualquier otra tecla y luego ENTER.\""
+       read again
+done #fin todo de nuevo
+
+echo "Si desea iniciar la instalación del Antifraude, oprima solamente ENTER, si
+desea cancelar el proceso oprima cualquier otra tecla y luego ENTER."
+read op
+if [ "$op" != "" ]; then
+       echo "Proceso de instalación cancelado"
+       exit 0
+fi
+
+#creo los directorios 
+echo "Creando Estructura de directorios"
+if [ -d "$PATH_GENERAL" ]; then 
+       echo "El directorio ya existe."
+       echo "Seleccione una opcion R: reinstalar, A: actualizar, C: Cancelar "
+       read sel
+       while [ "$sel" != "R" ]; do # || "$sel" != "A" ]; do
+               if [ "$sel" == "C" ]; then 
+                       echo "Proceso de Instalación Cancelado"
+                       exit 0
+               fi      
+               echo "Opción no válida" 
+               echo "Ingrese nuevamente la opción"
+               read sel
+       done
+       if [ "$sel" == "R" ]; then
+               rm -rf $PATH_GENERAL 
+               mkdir $PATH_GENERAL
+               mkdir $INSTDIR
+               mkdir $CONFDIR
+               mkdir $BINDIR
+               mkdir $DATADIR
+               mkdir $LOGDIR
+               mkdir -p "$DATADIR/{aprocesar,enproceso,rechazadas,procesadas}"
+               #creo archivos de log
+               touch "$LOGDIR/$LOGNAME"
+               #inserto informacion de instalacion
+               echo "INSTDIR = $INSTDIR" >> "$CONFDIR/afinstal.conf"
+               echo "CONFDIR = $CONFDIR" >> "$CONFDIR/afinstal.conf"
+               for n in `seq 3 51`
+               do
+                       echo "" >> "$CONFDIR/afinstal.conf"
+               done            
+               linea=10
+               i=0
+               fecha=$(date)
+               for FILE in ANTIFRAUDE.PL AFICONF AFIMONIO
+               do
+                       numlinea=`expr $linea + $i`
+                       cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s/.*/Comando $FILE/" > "$CONFDIR/afinstal.conf"
+                       i=`expr $i + 1`
+                       numlinea=`expr $linea + $i`
+                       cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(BINDIR = $BINDIR(" > "$CONFDIR/afinstal.conf"
+                       i=`expr $i + 1`
+                       numlinea=`expr $linea + $i`
+                       cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(LOGDIR = $LOGDIR(" > "$CONFDIR/afinstal.conf"
+                       i=`expr $i + 1`
+                       numlinea=`expr $linea + $i`
+                       cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(LOGNAME = $LOGNAME(" > "$CONFDIR/afinstal.conf"
+                       i=`expr $i + 1`
+                       numlinea=`expr $linea + $i`
+                       cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(LOGSIZE = $LOGSIZE(" > "$CONFDIR/afinstal.conf"
+                       if [ "$FILE" == "ANTIFRAUDE.PL" ]; then
+                               i=`expr $i + 1`
+                               numlinea=`expr $linea + $i`
+                               cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(DATADIR = $DATADIR(" > "$CONFDIR/afinstal.conf"
+                               i=`expr $i + 1`
+                               numlinea=`expr $linea + $i`
+                               cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(DATASIZE = (" > "$CONFDIR/afinstal.conf"
+                       fi              
+                       i=`expr $i + 1`
+                       numlinea=`expr $linea + $i`
+                       cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(USERID = $USER(" > "$CONFDIR/afinstal.conf"
+                       i=`expr $i + 1`
+                       numlinea=`expr $linea + $i`
+                       cat "$CONFDIR/afinstal.conf" | sed "$numlinea""s(.*(FECINS = $fecha(" > "$CONFDIR/afinstal.conf"
+
+                       i=0
+                       linea=`expr $linea + 10`
+               done #for
+       fi      #seleccion opcion
+fi #si esxiste la estructura de directorios.. FIXME si no existe, hay que crearlo
+
+
+
+#ofrezco la posibilidad de correr el demonio..
+
+cat << MARCA
+Desea efectuar la activación del demonio antifraude?
+Si desea arrancar el proceso de antifraude, oprima solamente ENTER,
+si no desea correr el proceso oprima cualquier otra tecla y luego ENTER.
 MARCA
-       fi
+
+read op 
+if [ "$op" == "" ]; then
+       #lanzo el proceso
+       num=$($BINDIR/afimonio &)
+       err=$num
+       echo  $err
+       num=`echo $num | sed "s/\[.*\]//"`
+       echo "El proceso afimonio se ha activado. Número de proceso:"
+else
+       echo "Para realizar la activación utilice el comando afimonio de la siguiente manera: $BINDIR/afimonio &".
 fi