2 # vim: set softtabstop=4 tabstop=4
4 ################# Funciones ###########################
6 # Devuelve 0 si la ruta fue cambiada y 1 si quedo por defecto
9 >> Nombre del directorio de $1 es: ($3)
10 Si desea modificarlo reemplaze "$2" por el deseado y presione ENTER,
11 de lo contrario solo presione ENTER."
14 if [ -n "$DIRSELECTED" ]; then return 1
19 # Devuelve 0 si el script y el OS matchean, 1 otherwise
21 if echo $0 | egrep -q 'afinstal$'; then
24 if echo $0 | egrep -q 'afinstam$'; then
27 if echo $0 | egrep -q 'afinstaw$'; then
31 if [ "$SISOPTP" != "$SCRIPTOS" ]; then
35 Este proceso de instalacion es para $SISOPTP y su sistema operativo
36 es $CURSIS. Solicite a su proveedor la version adecuada e inicie
37 nuevamente el proceso de instalacion.
45 # Devuelve 0 si se encuentra Perl instalado, 1 otherwise
46 function checkPerl() {
47 if [ "perl" = "`type perl | sed s/\"perl is .*\"/\"perl\"/`" ]; then
53 "Este proceso de instalación solo puede ser"
54 "ejecutado si Perl 5 o superior ya esta instalado"
56 "Efectúe a instalación de Perl"
57 i"e inicie nuevamente el procedimiento de instalación."
63 # Modifica una linea dada de un archivo dado
64 function changeLine() {
65 cat "$1" | sed "${2}s%.*%$3%" > "$1"
68 # Mensaje generico de abort
69 function abortMessage {
70 echo ">> Proceso de instalacion cancelado"
73 # Muestra los componentes instalados, usando vars ya definidas previamente
74 function showInstalled {
76 **********************************************************************
78 * Se encuentran instalados los siguientes componentes :
80 if [ "$havefraude" -eq 1 ]; then
81 echo "* Antifraude.pl instalado el $fechafraude por $userfraude"
83 if [ "$haveconf" -eq 1 ]; then
84 echo "* Aficonf instalado el $fechaconf por $userconf"
86 if [ "$havemonio" -eq 1 ]; then
87 echo "* Afimonio instalado el $fechaconf por $usermonio"
91 * Copyleft TPSistemasOp (c) 2004
92 **********************************************************************
96 # Permite seleccionar que componentes se instalaran
97 function selectModules() {
98 PS3="Seleccione un componente:"
101 while [ "$key" = "S" ] && [ -n "$choices" ]
106 ***********************************************************
107 * SELECCION de COMPONENTES *
108 * Por favor seleecione los componentes a ser instalados *
109 * de a uno por vez, a traves del siguiente menu: *
110 ***********************************************************
111 >> Se instalaran: $toinstall
114 select REPLY in $choices
117 "AFIMONIO" ) selected="afimonio";;
118 "AFICONF" ) selected="aficonf";;
119 "ANTIFRAUDE" ) selected="antifraude.pl";;
120 * ) selected="INVALID";;
125 if [ $selected != "INVALID" ]; then
126 choices=`echo $choices | sed s/$REPLY//`
127 if [ -z "$toinstall" ]; then toinstall=$selected
128 else toinstall="$toinstall,$selected"
131 if [ -n "$choices" ]; then
133 echo "Se instalara [$selected], si desea seleccionar"
134 echo "otro componente presione \"S\" y luego ENTER, de lo contrario"
135 echo "presione solo ENTER para comenzar a instalar los componentes"
137 if [ "$key" = "s" ]; then key="S"
142 if [ -n "$key" ]; then echo
145 ***********************************************************
146 * La seleccion de componentes ha finalizado. Se procedera *
147 * con la instalacion. *
148 ***********************************************************
149 Componentes a instalar: [ $toinstall ]
151 < Presione una tecla para continuar >
156 ################### MAIN SCRIPT CODE ###################
159 CURRDIR=`echo ${0%/*} | sed s%'\.'%$PWD%`
160 CONFDIR="${CURRDIR}/conf"
161 INSTDIR="${CURRDIR}/inst"
162 CONFFILE="${CONFDIR}/afinstal.conf"
168 # [STEP1] Verifico el OS vs SCRIPT y la presencia de PERL
169 echo ">> Verificando version del software contra el OS.."
171 if [ "$?" -ne 0 ]; then
175 echo ">> Verificando la existencia de PERL.."
177 if [ "$?" -ne 0 ]; then
181 echo ">> Proceso de instalacion para $SISOPTP iniciado."
182 echo ">> Presione ENTER para continuar"
185 # [STEP2] License Agreements
187 ***************************************************************
189 * Proceso de instalacion de "Antifraude" *
190 * Copyleft TPSistemasOp (c) 2004 *
192 ***************************************************************
193 A T E N C I O N: Al instalar Antifraude UD. expresa estar
194 en un todo de acuerdo con los terminos y condiciones del
195 ACUERDO DE LICENCIA DE SOFTWARE incluido en este paquete.
197 Si desea cancelar este proceso oprima 'F' y luego ENTER.
198 Para continuar oprima ENTER.
201 while [ "$key" != "" ]; do
203 if [ "$key" = "F" ]; then
209 # [STEP3] Chequeamos si hay componentes ya instalados
210 if [ -f "$CONFFILE" ] && [ -s "$CONFFILE" ]; then
211 #Busco los nombres de los binarios
212 binfraude=`grep -n "Comando" "$CONFFILE" | grep 10 | sed s%.*Comando.%%`
213 binconf=`grep -n "Comando" "$CONFFILE" | grep 20 | sed s%.*Comando.%%`
214 binmonio=`grep -n "Comando" "$CONFFILE" | grep 30 | sed s%.*Comando.%%`
215 #Busco donde deberian estar instalados
216 dirfraude=`grep -n "BINDIR" "$CONFFILE" | grep 11 | sed 's%.*= %%'`
217 dirconf=`grep -n "BINDIR" "$CONFFILE" | grep 21 | sed 's%.*= %%'`
218 dirmonio=`grep -n "BINDIR" "$CONFFILE" | grep 31 | sed 's%.*= %%'`
219 # Verifico finalmente si esta alli el archivo, en caso negativo, habilito
220 # la posibilidad de instalar ese componente
221 if [ ! -f "${dirmonio}/$binmonio" ]; then
225 usermonio=`grep -n "USERID" "$CONFFILE" | grep 35 | sed 's%.*= %%'`
226 fechamonio=`grep -n "FECINS" "$CONFFILE" | grep 36 | sed 's%.*= %%'`
228 if [ ! -f "${dirconf}/$binconf" ]; then
229 choices="${choices} AFICONF"
232 userconf=`grep -n "USERID" "$CONFFILE" | grep 25 | sed 's%.*= %%'`
233 fechaconf=`grep -n "FECINS" "$CONFFILE" | grep 26 | sed 's%.*= %%'`
235 if [ ! -f "${dirfraude}/$binfraude" ]; then
236 choices="${choices} ANTIFRAUDE"
239 userfraude=`grep -n "USERID" "$CONFFILE" | grep 17 | sed 's%.*= %%'`
240 fechafraude=`grep -n "FECINS" "$CONFFILE" | grep 18 | sed 's%.*= %%'`
245 choices="AFIMONIO AFICONF ANTIFRAUDE"
248 # [STEP4] Seleecion de los componentes a instalar
249 # TODO: tener en cuenta los que ya estan y no permitir elegirlos
250 if [ -z "$choices" ]; then
257 # [STEP5] Definir paths de cada componente e instalarlo guardando
258 # la informacion pertinente en el afinstal.conf
259 if [ ! -f "$CONFFILE" ] || [ ! -s "$CONFFILE" ]; then
261 echo "INSTDIR = $INSTDIR" >> $CONFFILE
262 echo "CONFDIR = $CONFDIR" >> $CONFFILE
263 for n in `seq 3 51`; do
268 # Comienzo la instalacion de cada componente
269 comandos=`echo $toinstall | sed s%,%" "%g`
270 for comando in $comandos
273 while [ -n "$choice" ]; do
275 # Directorios FIJOS para todos los componentes
279 ** Iniciando instalacion del componente <$comando>.
280 ** A continuacion se le permitira establecer la estructura de
281 ** directorios donde se instalara el mismo.
283 >> Nombre del directorio de instalacion: ($INSTDIR)
284 >> Nombre del directorio de configuracion: ($CONFDIR)
286 Por favor ingrese un path raiz en donde se crearan los directorios de
287 ejecutables, datos y logs segun corresponda o bien presione ENTER para
288 aceptar el siguiente sugerido: $CURRDIR
291 # Le pido un rootpath donde se instalara este comando en particular
293 if [ -n "$userpath" ]; then ROOTPATH=$userpath
294 else ROOTPATH=$CURRDIR
297 # preparlos los dirs que voy a sugerir
298 BINDIR="${ROOTPATH}/bin"
299 LOGDIR="${ROOTPATH}/log"
302 # Le muestro el directorio sugerido para los binarios
303 askDir "ejecutables" "bin" $BINDIR
304 if [ "$?" -ne 0 ]; then BINDIR="${ROOTPATH}/$DIRSELECTED"
307 # Si estoy con antifraude.pl muestro el sugerido para los datos
308 if [ "$comando" = "antifraude.pl" ]; then
309 DATADIR="${ROOTPATH}/llamadas"
310 askDir "datos" "llamadas" $DATADIR
311 if [ "$?" -ne 0 ]; then DATADIR="${ROOTPATH}/$DIRSELECTED"
315 # Le muestro el directorio para los logs
316 askDir "de datos" "log" $LOGDIR
317 if [ "$?" -ne 0 ]; then LOGDIR="${ROOTPATH}/$DIRSELECTED"
320 # Le sugiero el archivo de log
321 echo ">> Nombre del archivo de log: (${comando%.pl}.log)"
322 echo "Si desea conservar este nombre presione ENTER, de lo contrario"
323 echo "ingrese un nuevo nombre y luego presione ENTER"
325 if [ -z "$LOGFILE" ]; then
326 LOGFILE="${comando%.pl}.log"
329 # Le sugiero un size para el logfile
330 echo ">> Tamaño máximo para el archivo ($LOGFILE) en MB: 200"
331 echo "Si desea conservar este valor presione ENTER, de lo contrario ingrese"
332 echo "un nuevo valor y luego presione ENTER"
334 if [ -z "$LOGSIZE" ]; then
339 >> Parametros de instalacion de $comando
340 >> ===================================================================
341 >> Directorio de instalación: $INSTDIR
342 >> Directorio de configuración: $CONFDIR
343 >> Directorio de ejecutables: $BINDIR
344 >> Directorio de datos: $DATADIR
345 >> Archivo de log: $LOGDIR/$LOGFILE
346 >> Tamaño máximo para el archivo de log: $LOGSIZE
348 Si los datos ingresados son correctos oprima solamente ENTER, si desea
349 modificar alguno de ellos oprima cualquier otra tecla y luego ENTER.
355 Si desea iniciar la instalación de <$comando>, oprima ENTER, si desea
356 cancelar el proceso oprima cualquier otra tecla y luego ENTER.
359 if [ -n "$choice" ]; then
364 # Comienzo a crear la estructura de directorios definida (Check permisos!!)
365 echo ">> Creando Estructura de Directorio...."
368 mkdir -p "$CONFDIR/lock"
370 touch "$LOGDIR/$LOGFILE"
371 if [ $comando = "antifraude.pl" ]; then
373 mkdir -p $DATADIR/{aprocesar,enproceso,rechazadas,procesadas}
374 mkdir -p $DATADIR/alarmas
376 echo ">> Moviendo Archivos....."
377 cp "$INSTDIR/$comando" "$BINDIR"
379 # TODO : no se debe copiar solo 1 vez?
380 cp "$INSTDIR/oridesti.txt" "$CONFDIR"
382 # Guardo los datos en el archivo de configuracion
384 fecha=$(date +%d/%m/%Y)
386 "afimonio" ) numline=30;
390 "aficonf" ) numline=20;
394 "antifraude.pl" ) numline=10;
400 changeLine "$CONFFILE" "$numline" "Comando $comando"
401 numline=$(($numline+1))
402 changeLine "$CONFFILE" "$numline" "BINDIR = $BINDIR"
403 numline=$(($numline+1))
404 changeLine "$CONFFILE" "$numline" "LOGDIR = $LOGDIR"
405 numline=$(($numline+1))
406 changeLine "$CONFFILE" "$numline" "LOGFILE = $LOGFILE"
407 numline=$(($numline+1))
408 changeLine "$CONFFILE" "$numline" "LOGSIZE = $LOGSIZE"
409 numline=$(($numline+1))
410 if [ "$comando" = "antifraude.pl" ]; then
411 changeLine "$CONFFILE" "$numline" "DATADIR = $DATADIR"
412 numline=$(($numline+1))
413 changeLine "$CONFFILE" "$numline" "DATASIZE = "
414 numline=$(($numline+1))
416 changeLine "$CONFFILE" "$numline" "USERID = $userid"
417 numline=$(($numline+1))
418 changeLine "$CONFFILE" "$numline" "FECINS = $fecha"
421 # Creacion de archivos auxiliares
422 echo "0" > "$CONFDIR/umbrales.id"
424 # [STEP6] Ofrecer arrancar el Afimonio si estan los tres paquetes instalados
426 # [STEP7] Mostrar en un recuadro que se encuentra instalado en el sistema