#!/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