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
18 if echo $0 | egrep -q 'afinstal$'; then
21 if echo $0 | egrep -q 'afinstam$'; then
24 if echo $0 | egrep -q 'afinstaw$'; then
28 if [ "$SISOPTP" != "$SCRIPTOS" ]; then
32 Este proceso de instalacion es para $SISOPTP y su sistema operativo
33 es $CURSIS. Solicite a su proveedor la version adecuada e inicie
34 nuevamente el proceso de instalacion.
42 # Devuelve 0 si se encuentra Perl instalado, 1 otherwise
43 function checkPerl() {
44 if [ "perl" = "`type perl | sed s/\"perl is .*\"/\"perl\"/`" ]; then
50 "Este proceso de instalación solo puede ser"
51 "ejecutado si Perl 5 o superior ya esta instalado"
53 "Efectúe a instalación de Perl"
54 i"e inicie nuevamente el procedimiento de instalación."
60 # Modifica una linea dada de un archivo dado
61 function changeLine() {
62 cat "$1" | sed "${2}s%.*%$3%" > "$1"
65 # Mensaje generico de abort
66 function abortMessage {
67 echo ">> Proceso de instalacion cancelado"
70 # Muestra los componentes instalados, usando vars ya definidas previamente
71 function showInstalled {
73 **********************************************************************
75 * Se encuentran instalados los siguientes componentes :
77 if [ "$havefraude" -eq 1 ]; then
78 echo "* Antifraude.pl instalado el $fechafraude por $userfraude"
80 if [ "$haveconf" -eq 1 ]; then
81 echo "* Aficonf instalado el $fechaconf por $userconf"
83 if [ "$havemonio" -eq 1 ]; then
84 echo "* Afimonio instalado el $fechaconf por $usermonio"
88 * Copyleft TPSistemasOp (c) 2004
89 **********************************************************************
93 # Permite seleccionar que componentes se instalaran
94 function selectModules() {
95 PS3="Seleccione un componente:"
98 while [ "$key" = "S" ] && [ -n "$choices" ]
103 ***********************************************************
104 * SELECCION de COMPONENTES *
105 * Por favor seleecione los componentes a ser instalados *
106 * de a uno por vez, a traves del siguiente menu: *
107 ***********************************************************
108 >> Se instalaran: $toinstall
111 select REPLY in $choices
114 "AFIMONIO" ) selected="afimonio";;
115 "AFICONF" ) selected="aficonf";;
116 "ANTIFRAUDE" ) selected="antifraude.pl";;
117 * ) selected="INVALID";;
122 if [ $selected != "INVALID" ]; then
123 choices=`echo $choices | sed s/$REPLY//`
124 if [ -z "$toinstall" ]; then toinstall=$selected
125 else toinstall="$toinstall,$selected"
128 if [ -n "$choices" ]; then
130 echo "Se instalará [$selected]"
132 preguntar "¿Desea agregar otro componente para instalar?" "SsNn" key
133 if [ "$key" = "s" ]; then
139 if [ -n "$key" ]; then echo
142 ***********************************************************
143 * La seleccion de componentes ha finalizado. Se procedera *
144 * con la instalacion. *
145 ***********************************************************
146 Componentes a instalar: [ $toinstall ]
148 < Presione una tecla para continuar >
153 ################### MAIN SCRIPT CODE ###################
156 CURRDIR=`echo ${0%/*} | sed s%'\.'%$PWD%`
157 CONFDIR="${CURRDIR}/conf"
158 INSTDIR="${CURRDIR}/inst"
159 CONFFILE="${CONFDIR}/afinstal.conf"
165 # [STEP1] Verifico el OS vs SCRIPT y la presencia de PERL
166 echo ">> Verificando version del software contra el OS.."
168 if [ "$?" -ne 0 ]; then
172 echo ">> Verificando la existencia de PERL.."
174 if [ "$?" -ne 0 ]; then
178 echo ">> Proceso de instalacion para $SISOPTP iniciado."
179 echo ">> Presione ENTER para continuar"
182 # [STEP2] License Agreements
184 ***************************************************************
186 * Proceso de instalacion de "Antifraude" *
187 * Copyleft TPSistemasOp (c) 2004 *
189 ***************************************************************
190 A T E N C I O N: Al instalar Antifraude UD. expresa estar
191 en un todo de acuerdo con los terminos y condiciones del
192 ACUERDO DE LICENCIA DE SOFTWARE incluido en este paquete.
194 Si desea cancelar este proceso oprima 'F' y luego ENTER.
195 Para continuar oprima ENTER.
198 while [ "$key" != "" ]; do
200 if [ "$key" = "F" ]; then
206 # [STEP3] Chequeamos si hay componentes ya instalados
207 if [ -f "$CONFFILE" ] && [ -s "$CONFFILE" ]; then
208 #Busco los nombres de los binarios
209 binfraude=`grep -n "Comando" "$CONFFILE" | grep 10 | sed s%.*Comando.%%`
210 binconf=`grep -n "Comando" "$CONFFILE" | grep 20 | sed s%.*Comando.%%`
211 binmonio=`grep -n "Comando" "$CONFFILE" | grep 30 | sed s%.*Comando.%%`
212 #Busco donde deberian estar instalados
213 dirfraude=`grep -n "BINDIR" "$CONFFILE" | grep 11 | sed 's%.*= %%'`
214 dirconf=`grep -n "BINDIR" "$CONFFILE" | grep 21 | sed 's%.*= %%'`
215 dirmonio=`grep -n "BINDIR" "$CONFFILE" | grep 31 | sed 's%.*= %%'`
216 # Verifico finalmente si esta alli el archivo, en caso negativo, habilito
217 # la posibilidad de instalar ese componente
218 if [ ! -f "${dirmonio}/$binmonio" ]; then
222 usermonio=`grep -n "USERID" "$CONFFILE" | grep 35 | sed 's%.*= %%'`
223 fechamonio=`grep -n "FECINS" "$CONFFILE" | grep 36 | sed 's%.*= %%'`
225 if [ ! -f "${dirconf}/$binconf" ]; then
226 choices="${choices} AFICONF"
229 userconf=`grep -n "USERID" "$CONFFILE" | grep 25 | sed 's%.*= %%'`
230 fechaconf=`grep -n "FECINS" "$CONFFILE" | grep 26 | sed 's%.*= %%'`
232 if [ ! -f "${dirfraude}/$binfraude" ]; then
233 choices="${choices} ANTIFRAUDE"
236 userfraude=`grep -n "USERID" "$CONFFILE" | grep 17 | sed 's%.*= %%'`
237 fechafraude=`grep -n "FECINS" "$CONFFILE" | grep 18 | sed 's%.*= %%'`
242 choices="AFIMONIO AFICONF ANTIFRAUDE"
245 # [STEP4] Seleecion de los componentes a instalar
246 # TODO: tener en cuenta los que ya estan y no permitir elegirlos
247 if [ -z "$choices" ]; then
254 # [STEP5] Definir paths de cada componente e instalarlo guardando
255 # la informacion pertinente en el afinstal.conf
256 if [ ! -f "$CONFFILE" ] || [ ! -s "$CONFFILE" ]; then
258 echo "INSTDIR = $INSTDIR" >> $CONFFILE
259 echo "CONFDIR = $CONFDIR" >> $CONFFILE
260 for n in `seq 3 51`; do
265 # Comienzo la instalacion de cada componente
266 comandos=`echo $toinstall | sed s%,%" "%g`
267 for comando in $comandos
270 while [ -n "$choice" ]; do
272 # Directorios FIJOS para todos los componentes
276 ** Iniciando instalacion del componente <$comando>.
277 ** A continuacion se le permitira establecer la estructura de
278 ** directorios donde se instalara el mismo.
280 >> Nombre del directorio de instalacion: ($INSTDIR)
281 >> Nombre del directorio de configuracion: ($CONFDIR)
285 # Le pido un rootpath donde se instalara este comando en particular
286 leer ">> Ingrese la ruta de instalación" "$CURRDIR" userpath
287 if [ -n "$userpath" ]; then ROOTPATH=$userpath
288 else ROOTPATH=$CURRDIR
291 # preparlos los dirs que voy a sugerir
292 BINDIR="${ROOTPATH}/bin"
293 LOGDIR="${ROOTPATH}/log"
296 # Le muestro el directorio sugerido para los binarios
297 askDir "ejecutables" "bin" $BINDIR
298 if [ "$?" -ne 0 ]; then BINDIR="${ROOTPATH}/$DIRSELECTED"
301 # Si estoy con antifraude.pl muestro el sugerido para los datos
302 if [ "$comando" = "antifraude.pl" ]; then
303 DATADIR="${ROOTPATH}/llamadas"
304 askDir "datos" "llamadas" $DATADIR
305 if [ "$?" -ne 0 ]; then DATADIR="${ROOTPATH}/$DIRSELECTED"
309 # Le muestro el directorio para los logs
310 askDir "de datos" "log" $LOGDIR
311 if [ "$?" -ne 0 ]; then LOGDIR="${ROOTPATH}/$DIRSELECTED"
314 # Le sugiero el archivo de log
315 leer ">> Nombre del archivo de log" "${comando%.pl}.log" LOGFILE
316 if [ -z "$LOGFILE" ]; then
317 LOGFILE="${comando%.pl}.log"
320 # Le sugiero un size para el logfile
321 leer ">> Tamaño máximo para el archivo ($LOGFILE) en MB" "200" LOGSIZE
322 if [ -z "$LOGSIZE" ]; then
328 >> Parametros de instalacion de $comando
329 >> ===================================================================
330 >> Directorio de instalación: $INSTDIR
331 >> Directorio de configuración: $CONFDIR
332 >> Directorio de ejecutables: $BINDIR
333 >> Directorio de datos: $DATADIR
334 >> Archivo de log: $LOGDIR/$LOGFILE
335 >> Tamaño máximo para el archivo de log: $LOGSIZE
337 Si los datos ingresados son correctos oprima solamente ENTER, si desea
338 modificar alguno de ellos oprima cualquier otra tecla y luego ENTER.
344 Si desea iniciar la instalación de <$comando>, oprima ENTER, si desea
345 cancelar el proceso oprima cualquier otra tecla y luego ENTER.
348 if [ -n "$choice" ]; then
353 # Comienzo a crear la estructura de directorios definida (Check permisos!!)
354 echo ">> Creando Estructura de Directorio...."
357 mkdir -p "$CONFDIR/lock"
359 touch "$LOGDIR/$LOGFILE"
360 if [ $comando = "antifraude.pl" ]; then
362 mkdir -p $DATADIR/{aprocesar,enproceso,rechazadas,procesadas}
363 mkdir -p $DATADIR/alarmas
365 echo ">> Moviendo Archivos....."
366 cp "$INSTDIR/$comando" "$BINDIR"
368 # TODO : no se debe copiar solo 1 vez?
369 cp "$INSTDIR/oridesti.txt" "$CONFDIR"
371 # Guardo los datos en el archivo de configuracion
373 fecha=$(date +%d/%m/%Y)
375 "afimonio" ) numline=30;
379 "aficonf" ) numline=20;
383 "antifraude.pl" ) numline=10;
389 changeLine "$CONFFILE" "$numline" "Comando $comando"
390 numline=$(($numline+1))
391 changeLine "$CONFFILE" "$numline" "BINDIR = $BINDIR"
392 numline=$(($numline+1))
393 changeLine "$CONFFILE" "$numline" "LOGDIR = $LOGDIR"
394 numline=$(($numline+1))
395 changeLine "$CONFFILE" "$numline" "LOGFILE = $LOGFILE"
396 numline=$(($numline+1))
397 changeLine "$CONFFILE" "$numline" "LOGSIZE = $LOGSIZE"
398 numline=$(($numline+1))
399 if [ "$comando" = "antifraude.pl" ]; then
400 changeLine "$CONFFILE" "$numline" "DATADIR = $DATADIR"
401 numline=$(($numline+1))
402 changeLine "$CONFFILE" "$numline" "DATASIZE = "
403 numline=$(($numline+1))
405 changeLine "$CONFFILE" "$numline" "USERID = $userid"
406 numline=$(($numline+1))
407 changeLine "$CONFFILE" "$numline" "FECINS = $fecha"
410 # Creacion de archivos auxiliares
411 echo "0" > "$CONFDIR/umbrales.id"
413 # [STEP6] Ofrecer arrancar el Afimonio si estan los tres paquetes instalados
415 # [STEP7] Mostrar en un recuadro que se encuentra instalado en el sistema