################# 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 ""
+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
- if [ -n "$DIRSELECTED" ]; then
- return 0
- else
- return 1
+ if [ -n "$DIRSELECTED" ]; then return 1
+ else return 0
fi
}
return 0;
else
cat <<MARCA
->> Verificando la existencia de PERL .. FAILED!
"ERROR!!!"
"Este proceso de instalación solo puede ser"
select REPLY in $choices
do
case $REPLY in
- "AFIMONIO" ) selected="AFIMONIO";;
- "AFICONF" ) selected="AFICONF";;
- "ANTIFRAUDE" ) selected="ANTIFRAUDE";;
+ "AFIMONIO" ) selected="afimonio";;
+ "AFICONF" ) selected="aficonf";;
+ "ANTIFRAUDE" ) selected="antifraude.pl";;
* ) selected="INVALID";;
esac
break
done
if [ $selected != "INVALID" ]; then
- choices=`echo $choices | sed s/$selected//`
+ choices=`echo $choices | sed s/$REPLY//`
if [ -z "$toinstall" ]; then toinstall=$selected
else toinstall="$toinstall,$selected"
fi
* con la instalacion. *
***********************************************************
Componentes a instalar: [ $toinstall ]
+
+< Presione una tecla para continuar >
MARCA
+read key
}
################### MAIN SCRIPT CODE ###################
clear
SISOPTP=$(uname)
+CURRDIR=`echo ${0%/*} | sed s%'\.'%$PWD%`
# [STEP1] Verifico el OS vs SCRIP y la presencia de PERL
echo ">> Verificando version del software contra el OS.."
done
# [STEP3] Chequeamos si hay componentes ya instalados
-if [ -f "./conf/afinstal.conf" ]; then
+if [ "2" = "3" ]; 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/\.\*\=\ //`
# [STEP4] Seleecion de los componentes a instalar
# TODO: tener en cuenta los que ya estan
selectModules
-exit 0
-# [STEP5] Verifico que perl este instalado
+# [STEP5] Definir paths de cada componente e instalarlo guardando
+# la informacion pertinente en el afinstal.conf
+CONFDIR="${CURRDIR}/conf"
+INSTDIR="${CURRDIR}/inst"
+CONFFILE="${CONFDIR}/afinstal.conf"
+DEFAULTDIR=$CURRDIR
-#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
+# Si no existe el afinstal.conf, lo creo y agrego las primeras 2 lineas
+if [ ! -f "$CONFFILE" ]; then
+ touch "$CONFFILE"
+ echo "INSTDIR = $INSTDIR" >> $CONFFILE
+ echo "CONFDIR = $CONFDIR" >> $CONFFILE
+ for n in `seq 3 51`; do
+ echo "" >> $CONFFILE
+ done
+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
+# Comienzo la instalacion de cada componente
+comandos=`echo $toinstall | sed s%,%" "%g`
+for comando in $comandos
+do
+ choice='something'
+ while [ -n "$choice" ]; do
+
+ # Directorios FIJOS para todos los componentes
+ clear
+ cat <<MARCA
- 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."
+** Iniciando instalacion del componente <$comando>.
+** A continuacion se le permitira establecer la estructura de
+** directorios donde se instalara el mismo.
- read op
+>> Nombre del directorio de instalacion: ($INSTDIR)
+>> Nombre del directorio de configuracion: ($CONFDIR)
- if [ -n "$op" ]; then
- echo "Proceso de instalación cancelado"
- exit 0
- fi
+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
- # 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
+ # Le pido un rootpath donde se instalara este comando en particular
+ read userpath
+ if [ -n "$userpath" ]; then ROOTPATH=$userpath
+ else ROOTPATH=$CURRDIR
+ fi
+
+ # preparlos los dirs que voy a sugerir
+ BINDIR="${ROOTPATH}/bin"
+ LOGDIR="${ROOTPATH}/log"
+ DATADIR=""
- 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
+ # Le muestro el directorio sugerido para los binarios
+ askDir "ejecutables" "bin" $BINDIR
+ if [ "$?" -ne 0 ]; then BINDIR="${ROOTPATH}/$DIRSELECTED"
+ fi
+
+ # Si estoy con antifraude.pl muestro el sugerido para los datos
+ if [ "$comando" = "antifraude.pl" ]; then
+ DATADIR="${ROOTPATH}/llamadas"
+ askDir "datos" "llamadas" $DATADIR
+ if [ "$?" -ne 0 ]; then DATADIR="${ROOTPATH}/$DIRSELECTED"
+ fi
+ fi
+
+ # Le muestro el directorio para los logs
+ askDir "de datos" "log" $LOGDIR
+ if [ "$?" -ne 0 ]; then LOGDIR="${ROOTPATH}/$DIRSELECTED"
+ 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
+ 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
+ if [ -z "$LOGSIZE" ]; then
+ LOGSIZE=200
+ fi
+
+ cat <<MARCA
+>> Parametros de instalacion de $comando
+>> ===================================================================
+>> Directorio de instalación: $INSTDIR
+>> Directorio de configuración: $CONFDIR
+>> Directorio de ejecutables: $BINDIR
+>> Directorio de datos: $DATADIR
+>> Archivo de log: $LOGDIR/$LOGFILE
+>> 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 choice
+ done
+
+ cat <<MARCA
+Si desea iniciar la instalación de <$comando>, oprima ENTER, si desea
+cancelar el proceso oprima cualquier otra tecla y luego ENTER.
+MARCA
+ read choice
+ if [ -n "$choice" ]; then exit 1
+ fi
+
+ # Comienzo a crear la estructura de directorios definida (Chequear 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}
+ fi
+ echo ">> Moviendo Archivos....."
+ cp $INSTDIR/$comando $BINDIR
+ cp $INSTDIR/umbrales.param $CONFDIR
+ #cp $INSTDIR/*.data $DATADIR/aprocesar
+done
+
+############## NO DAR BOLA DE ACA HACIA ABAJO #####################
+exit 0
+
+linea=10
+i=0
+fecha=$(date)
+
+
+read op
+
+if [ -n "$op" ]; then
+ echo "Proceso de instalación cancelado"
+ exit 0
+fi
+
+# Cremos los directorios para este comando
+
+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))
+
+# 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/.*= //'`
+done