+#!/bin/bash
+# vim: set softtabstop=4 tabstop=4
+
+################# 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 ""
+ read DIRSELECTED
+ if [ -n "$DIRSELECTED" ]; then
+ return 0
+ else
+ return 1
+ fi
+}
+
+# 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
+ cat<<MARCA
+
+### 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.
+
+MARCA
+ return 1
+ else return 0
+ fi
+}
+
+# Devuelve 0 si se encuentra Perl instalado, 1 otherwise
+function checkPerl() {
+ if [ "perl" = "`type perl | sed s/\"perl is .*\"/\"perl\"/`" ]; then
+ return 0;
+ else
+ cat <<MARCA
+>> 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."
+MARCA
+ return 1
+ fi
+}
+
+# Permite seleccionar que componentes se instalaran
+function selectModules() {
+ PS3="Seleccione un componente:"
+ choices="AFIMONIO AFICONF ANTIFRAUDE"
+ key="S"
+ toinstall=""
+ while [ "$key" = "S" ] && [ -n "$choices" ]
+ do
+ clear
+ cat <<MARCA
+
+***********************************************************
+* SELECCION de COMPONENTES *
+* Por favor seleecione los componentes a ser instalados *
+* de a uno por vez, a traves del siguiente menu: *
+***********************************************************
+>> Se instalaran: $toinstall
+
+MARCA
+ select REPLY in $choices
+ do
+ case $REPLY in
+ "AFIMONIO" ) selected="AFIMONIO";;
+ "AFICONF" ) selected="AFICONF";;
+ "ANTIFRAUDE" ) selected="ANTIFRAUDE";;
+ * ) selected="INVALID";;
+ esac
+ break
+ done
+
+ if [ $selected != "INVALID" ]; then
+ choices=`echo $choices | sed s/$selected//`
+ if [ -z "$toinstall" ]; then toinstall=$selected
+ else toinstall="$toinstall,$selected"
+ fi
+
+ 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"
+ fi
+ fi
+ fi
+ done
+ if [ -n "$key" ]; then echo
+ fi
+cat <<MARCA
+***********************************************************
+* La seleccion de componentes ha finalizado. Se procedera *
+* con la instalacion. *
+***********************************************************
+Componentes a instalar: [ $toinstall ]
+MARCA
+}
+
+################### MAIN SCRIPT CODE ###################
+clear
+SISOPTP=$(uname)
+
+# [STEP1] Verifico el OS vs SCRIP y la presencia de PERL
+echo ">> Verificando version del software contra el OS.."
+checkOS
+if [ "$?" -ne 0 ]; then exit 1
+fi
+echo ">> Verificando la existencia de PERL.."
+checkPerl
+if [ "$?" -ne 0 ]; then exit 1
+fi
+echo ">> Proceso de instalacion para $SISOPTP iniciado."
+echo ">> Presione ENTER para continuar"
+read key
+
+# [STEP2] License Agreements
+cat <<MARCA
+***************************************************************
+* *
+* Proceso de instalacion de "Antifraude" *
+* Copyright TPSistemasOp (c) 2004 *
+* *
+***************************************************************
+ A T E N C I O N: Al instalar Antifraude UD. expresa estar
+ en un todo de acuerdo con los terminos y condiciones del
+ ACUERDO DE LICENCIA DE SOFTWARE incluido en este paquete.
+
+ Si desea cancelar este proceso oprima 'F' y luego ENTER.
+ Para continuar oprima ENTER.
+MARCA
+key="something"
+while [ "$key" != "" ]; do
+read key
+if [ "$key" = "F" ]; then
+ echo ">> Proceso de instalacion cancelado"
+ exit 0
+fi
+done
+
+# [STEP3] Chequeamos si hay componentes ya instalados
+if [ -f "./conf/afinstal.conf" ]; 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"
+ 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"
+ 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 *
+***************************************************************
+
+Proceso de instalación cancelado.
+MARCA
+ exit 0
+ fi
+fi
+
+# [STEP4] Seleecion de los componentes a instalar
+# TODO: tener en cuenta los que ya estan
+selectModules
+exit 0
+
+# [STEP5] Verifico que perl este instalado
+
+#defino los paths de configuracion e instalacion
+ CURDIR=$PWD
+ CONFDIR="${CURDIR}/conf"
+ INSTDIR="${CURDIR}/inst"
+ #creo el afinstal.conf y le agrego las 2 primeras lineas
+ 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 comando in antifraude.pl afimonio aficonf ; do
+ op="a"
+ while [ -n "$op" ]; do
+ #Almance el path actual
+ BINDIR="${CURDIR}/bin"
+ DATADIR="${CURDIR}/llamadas"
+ LOGDIR="${CURDIR}/log"
+
+ echo "La ruta del directorio de instalación es: ($INSTDIR)"
+ echo "La ruta del directorio de configuración es: ($CONFDIR)"
+ echo "La ruta del directorio de ejecutables es: ($BINDIR)"
+ DIRSELECTED=""
+ if cambiaruta "ejecutables" $BINDIR ; then
+ BINDIR=$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
+
+ cat <<MARCA
+ " Parametros de instalación de $comando "
+ " ========================================== "
+ " Nombre del directorio de instalación: $INSTDIR "
+ " Nombre del directorio de ejecutables: $BINDIR "
+ " Nombre del directorio de datos: $DATADIR "
+ " Nombre del directorio de configuración: $CONFDIR "
+ " Directorio y nombre del archivo de log: $LOGDIR/$LOGNAME"
+ " Tamaño máximo para el archivo de log: $LOGSIZE "
+
+ 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
+
+ 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."
+
+ read op
+
+ if [ -n "$op" ]; then
+ echo "Proceso de instalación cancelado"
+ exit 0
+ fi
+
+ # 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))
+ done #for
+ done #while
+ # 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/.*= //'`
+ echo " *
+ done