2 # vim: set softtabstop=4 tabstop=4
6 ################# Funciones ###########################
8 # Devuelve 0 si la ruta fue cambiada y 1 si quedo por defecto
10 leer ">> Ingrese la ruta para los archivos $1" "$2" DIRSELECTED
11 if [ -n "$DIRSELECTED" ]; then return 1
16 # Devuelve 0 si el script y el OS matchean, 1 otherwise
19 SCRIPTOS="un sistema desconocido"
31 if [ "$CURSIS" != "$SCRIPTOS" ]; then
35 Este proceso de instalacion es para $SCRIPTOS
36 y su sistema operativo es $CURSIS
37 Solicite a su proveedor la version adecuada
38 e inicie nuevamente el proceso de instalacion.
46 # Devuelve 0 si se encuentra Perl instalado, 1 otherwise
47 function checkPerl() {
48 if [ "perl" = "`type perl | sed s/\"perl is .*\"/\"perl\"/`" ]; then
54 Este proceso de instalación solo puede ser
55 ejecutado si Perl 5 o superior ya esta instalado
57 Efectúe a instalación de Perl
58 Inicie nuevamente el procedimiento de instalación.
65 # Modifica una linea dada de un archivo dado
66 function changeLine() {
67 cat "$1" | sed "${2}s%.*%$3%" > "$1"
70 # Mensaje generico de abort
71 function abortMessage {
72 echo ">> Proceso de instalacion cancelado"
75 # Muestra los componentes instalados, usando vars ya definidas previamente
76 function showInstalled {
78 **********************************************************************
80 * Se encuentran instalados los siguientes componentes :
82 if [ "$havefraude" -eq 1 ]; then
83 echo "* Antifraude.pl instalado el $fechafraude por $userfraude"
85 if [ "$haveconf" -eq 1 ]; then
86 echo "* Aficonf instalado el $fechaconf por $userconf"
88 if [ "$havemonio" -eq 1 ]; then
89 echo "* Afimonio instalado el $fechaconf por $usermonio"
93 * Copyleft TPSistemasOp (c) 2004
94 **********************************************************************
98 # Permite seleccionar que componentes se instalaran
99 function selectModules() {
100 PS3="Seleccione un componente: "
103 while [ "$key" = "S" ] && [ -n "$choices" ]
108 ***********************************************************
109 * SELECCION de COMPONENTES *
110 * Por favor seleecione los componentes a ser instalados *
111 * de a uno por vez, a traves del siguiente menu: *
112 ***********************************************************
113 >> Se instalaran: $toinstall
116 select REPLY in $choices
119 "AFIMONIO" ) selected="afimonio";;
120 "AFICONF" ) selected="aficonf";;
121 "ANTIFRAUDE" ) selected="antifraude.pl";;
122 * ) selected="INVALID";;
127 if [ $selected != "INVALID" ]; then
128 choices=`echo $choices | sed s/$REPLY//`
129 if [ -z "$toinstall" ]; then toinstall=$selected
130 else toinstall="$toinstall,$selected"
133 if [ -n "$choices" ]; then
135 echo "Se instalará [$selected]"
137 preguntar "¿Desea agregar otro componente para instalar?" "SsNn" key
138 if [ "$key" = "s" ]; then
144 if [ -n "$key" ]; then echo
147 ***********************************************************
148 * La seleccion de componentes ha finalizado. Se procedera *
149 * con la instalacion. *
150 ***********************************************************
151 Componentes a instalar: [ $toinstall ]
153 < Presione una tecla para continuar >
158 ################### MAIN SCRIPT CODE ###################
161 CURRDIR=`echo ${0%/*} | sed s%'\.'%$PWD%`
162 CONFDIR="${CURRDIR}/conf"
163 INSTDIR="${CURRDIR}/inst"
164 CONFFILE="${CONFDIR}/afinstal.conf"
166 OWNCONFDIR="$HOME/.antifraude"
171 # [STEP1] Verifico el OS vs SCRIPT y la presencia de PERL
172 echo -n ">> Verificando version del software contra el OS... "
174 if [ "$?" -ne 0 ]; then
179 echo ">> Proceso de instalacion para $SISOPTP iniciado."
180 echo ">> Presione ENTER para continuar"
183 # [STEP2] License Agreements
185 ***************************************************************
187 * Proceso de instalacion de "Antifraude" *
188 * Copyleft TPSistemasOp (c) 2004 *
190 ***************************************************************
191 A T E N C I O N: Al instalar Antifraude UD. expresa estar
192 en un todo de acuerdo con los terminos y condiciones del
193 ACUERDO DE LICENCIA DE SOFTWARE incluido en este paquete.
195 Si desea cancelar este proceso oprima 'F' y luego ENTER.
196 Para continuar oprima ENTER.
199 while [ "$key" != "" ]; do
201 if [ "$key" = "F" ]; then
207 # [STEP3] Chequeamos si hay componentes ya instalados
208 if [ -f "$CONFFILE" ] && [ -s "$CONFFILE" ]; then
209 #Busco los nombres de los binarios
210 binfraude=`grep -n "Comando" "$CONFFILE" | grep 10 | sed s%.*Comando.%%`
211 binconf=`grep -n "Comando" "$CONFFILE" | grep 20 | sed s%.*Comando.%%`
212 binmonio=`grep -n "Comando" "$CONFFILE" | grep 30 | sed s%.*Comando.%%`
213 #Busco donde deberian estar instalados
214 dirfraude=`grep -n "BINDIR" "$CONFFILE" | grep 11 | sed 's%.*= %%'`
215 dirconf=`grep -n "BINDIR" "$CONFFILE" | grep 21 | sed 's%.*= %%'`
216 dirmonio=`grep -n "BINDIR" "$CONFFILE" | grep 31 | sed 's%.*= %%'`
217 # Verifico finalmente si esta alli el archivo, en caso negativo, habilito
218 # la posibilidad de instalar ese componente
219 if [ ! -f "${dirmonio}/$binmonio" ]; then
223 usermonio=`grep -n "USERID" "$CONFFILE" | grep 35 | sed 's%.*= %%'`
224 fechamonio=`grep -n "FECINS" "$CONFFILE" | grep 36 | sed 's%.*= %%'`
226 if [ ! -f "${dirconf}/$binconf" ]; then
227 choices="${choices} AFICONF"
230 userconf=`grep -n "USERID" "$CONFFILE" | grep 25 | sed 's%.*= %%'`
231 fechaconf=`grep -n "FECINS" "$CONFFILE" | grep 26 | sed 's%.*= %%'`
233 if [ ! -f "${dirfraude}/$binfraude" ]; then
234 choices="${choices} ANTIFRAUDE"
237 userfraude=`grep -n "USERID" "$CONFFILE" | grep 17 | sed 's%.*= %%'`
238 fechafraude=`grep -n "FECINS" "$CONFFILE" | grep 18 | sed 's%.*= %%'`
243 choices="AFIMONIO AFICONF ANTIFRAUDE"
246 # [STEP4] Seleecion de los componentes a instalar
247 # TODO: tener en cuenta los que ya estan y no permitir elegirlos
248 if [ -z "$choices" ]; then
255 # [STEP5] Definir paths de cada componente e instalarlo guardando
256 # la informacion pertinente en el afinstal.conf
257 if [ ! -f "$CONFFILE" ] || [ ! -s "$CONFFILE" ]; then
259 echo "INSTDIR = $INSTDIR" >> $CONFFILE
260 echo "CONFDIR = $CONFDIR" >> $CONFFILE
261 for n in `seq 3 51`; do
265 if [ ! -f "$OWNCONFDIR" ]; then
266 mkdir -p "$OWNCONFDIR"
268 if [ ! -f "$OWNCONFDIR/lock" ]; then
269 mkdir -p "$OWNCONFDIR/lock"
271 if [ ! -f "$OWNCONFDIR/conf" ]; then
272 mkdir -p "$OWNCONFDIR/conf"
275 # Comienzo la instalacion de cada componente
276 comandos=`echo $toinstall | sed s%,%" "%g`
277 for comando in $comandos
280 while [ -n "$choice" ]; do
282 # Directorios FIJOS para todos los componentes
284 if [ "$comando" = "antifraude.pl" ]; then
285 echo -n ">> Verificando la existencia de PERL... "
287 if [ "$?" -ne 0 ]; then
296 ** Iniciando instalacion del componente <$comando>.
297 ** A continuacion se le permitira establecer la estructura de
298 ** directorios donde se instalara el mismo.
300 >> Nombre del directorio de instalacion: ($INSTDIR)
301 >> Nombre del directorio de configuracion: ($CONFDIR)
305 # Le pido un rootpath donde se instalara este comando en particular
307 while [ $is_writeable -eq 0 ]; do
308 leer ">> Ingrese la ruta de instalación" "$CURRDIR/grupoNN" userpath
309 if [ -n "$userpath" ]; then
311 if [ -w "${userpath%/*}" ]; then is_writeable=1
312 else echo ">> ERROR: No es posible crear dicho directorio"
315 ROOTPATH="$CURRDIR/grupoNN"
320 # preparlos los dirs que voy a sugerir
321 BINDIR="${ROOTPATH}/bin"
322 LOGDIR="${ROOTPATH}/log"
325 # Le muestro el directorio sugerido para los binarios
326 askDir "ejecutables" "bin" $BINDIR
327 if [ "$?" -ne 0 ]; then BINDIR="${ROOTPATH}/$DIRSELECTED"
330 # Si estoy con antifraude.pl muestro el sugerido para los datos
331 if [ "$comando" = "antifraude.pl" ]; then
332 DATADIR="${ROOTPATH}/llamadas"
333 askDir "datos" "llamadas" $DATADIR
334 if [ "$?" -ne 0 ]; then DATADIR="${ROOTPATH}/$DIRSELECTED"
338 # Le muestro el directorio para los logs
339 askDir "de datos" "log" $LOGDIR
340 if [ "$?" -ne 0 ]; then LOGDIR="${ROOTPATH}/$DIRSELECTED"
343 # Le sugiero el archivo de log
344 leer ">> Nombre del archivo de log" "${comando%.pl}.log" LOGFILE
345 if [ -z "$LOGFILE" ]; then
346 LOGFILE="${comando%.pl}.log"
349 # Le sugiero un size para el logfile
350 leer ">> Tamaño máximo para el archivo ($LOGFILE) en MB" "200" LOGSIZE
351 if [ -z "$LOGSIZE" ]; then
357 >> Parametros de instalacion de $comando
358 >> ===================================================================
359 >> Directorio de instalación: $INSTDIR
360 >> Directorio de configuración: $CONFDIR
361 >> Directorio de ejecutables: $BINDIR
362 >> Directorio de datos: $DATADIR
363 >> Archivo de log: $LOGDIR/$LOGFILE
364 >> Tamaño máximo para el archivo de log: $LOGSIZE
366 Si los datos ingresados son correctos oprima solamente ENTER, si desea
367 modificar alguno de ellos oprima cualquier otra tecla y luego ENTER.
373 Si desea iniciar la instalación de <$comando>, oprima ENTER, si desea
374 cancelar el proceso oprima cualquier otra tecla y luego ENTER.
377 if [ -n "$choice" ]; then
382 # Comienzo a crear la estructura de directorios definida (Check permisos!!)
383 echo ">> Creando Estructura de Directorio...."
387 touch "$LOGDIR/$LOGFILE"
388 if [ "$comando" = "antifraude.pl" ]; then
390 mkdir -p "$DATADIR"/{aprocesar,enproceso,rechazadas,procesadas}
391 mkdir -p "$DATADIR/alarmas"
393 echo ">> Moviendo Archivos....."
394 cp "$INSTDIR/$comando" "$BINDIR"
395 chmod u+x "$BINDIR/$comando"
397 # Copio umbrales y oridesti una sola vez
398 if [ ! -f "$OWNCONFDIR/oridesti.txt" ]; then
399 cp "$INSTDIR/oridesti.txt" "$OWNCONFDIR"
401 if [ ! -f "$OWNCONFDIR/umbrales.param" ]; then
402 cp "$INSTDIR/umbrales.param" "$OWNCONFDIR"
404 if [ ! -f "$OWNCONFDIR/umbrales.id" ]; then
405 echo 0 >> "$OWNCONFDIR/umbrales.id"
408 # Guardo los datos en el archivo de configuracion
409 ownconffile="$OWNCONFDIR/conf/${comando%.pl}.conf"
410 if [ -f "$ownconffile" ]; then
411 rm -rf "$ownconffile"
414 fecha=$(date +%d/%m/%Y)
416 "afimonio" ) numline=30;
421 "aficonf" ) numline=20;
426 "antifraude.pl" ) numline=10;
433 changeLine "$CONFFILE" "$numline" "Comando $comando"
434 numline=$(($numline+1))
435 changeLine "$CONFFILE" "$numline" "BINDIR = $BINDIR"
436 echo "${prefix}_BINDIR=\"$BINDIR\"" >> $ownconffile
437 numline=$(($numline+1))
438 changeLine "$CONFFILE" "$numline" "LOGDIR = $LOGDIR"
439 echo "${prefix}_LOGDIR=\"$LOGDIR\"" >> $ownconffile
440 numline=$(($numline+1))
441 changeLine "$CONFFILE" "$numline" "LOGFILE = $LOGFILE"
442 echo "${prefix}_LOGFILE=\"$LOGFILE\"" >> $ownconffile
443 numline=$(($numline+1))
444 changeLine "$CONFFILE" "$numline" "LOGSIZE = $LOGSIZE"
445 echo "${prefix}_LOGSIZE=$LOGSIZE" >> $ownconffile
446 numline=$(($numline+1))
447 if [ "$comando" = "antifraude.pl" ]; then
448 changeLine "$CONFFILE" "$numline" "DATADIR = $DATADIR"
449 echo "${prefix}_DATADIR=\"$DATADIR\"" >> $ownconffile
450 numline=$(($numline+1))
451 changeLine "$CONFFILE" "$numline" "DATASIZE = "
452 numline=$(($numline+1))
454 changeLine "$CONFFILE" "$numline" "USERID = $userid"
455 numline=$(($numline+1))
456 changeLine "$CONFFILE" "$numline" "FECINS = $fecha"
457 echo ">> Instalación del componente $comando completada"
461 # [STEP6] Ofrecer arrancar el Afimonio si estan los tres paquetes instalados
463 # [STEP7] Mostrar en un recuadro que se encuentra instalado en el sistema