cat $1 | sed "${2}s%.*%$3%" > $1
}
+# Mensaje generico de abort
+function abortMessage {
+ echo ">> Proceso de instalacion cancelado"
+}
+
+# Muestra los componentes instalados, usando vars ya definidas previamente
+function showInstalled {
+cat <<MARCA
+**********************************************************************
+* $1
+* Se encuentran instalados los siguientes componentes :
+MARCA
+ if [ "$havefraude" -eq 1 ]; then
+ echo "* Antifraude.pl instalado el $fechafraude por UID $userfraude"
+ fi
+ if [ "$haveconf" -eq 1 ]; then
+ echo "* Aficonf instalado el $fechaconf por UID $userconf"
+ fi
+ if [ "$havemonio" -eq 1 ]; then
+ echo "* Afimonio instalado el $fechaconf por UID $usermonio"
+ fi
+cat <<MARCA
+*
+* Copyright TPSistemasOp (c)2004
+**********************************************************************
+MARCA
+}
+
# Permite seleccionar que componentes se instalaran
function selectModules() {
PS3="Seleccione un componente:"
- choices="AFIMONIO AFICONF ANTIFRAUDE"
key="S"
toinstall=""
while [ "$key" = "S" ] && [ -n "$choices" ]
if [ -z "$toinstall" ]; then toinstall=$selected
else toinstall="$toinstall,$selected"
fi
-
- if [ -n "$choices" ]; then
+
+ if [ -n "$choices" ]; then
echo
echo "Se instalara [$selected], si desea seleccionar"
echo "otro componente presione \"S\" y luego ENTER, de lo contrario"
clear
SISOPTP=$(uname)
CURRDIR=`echo ${0%/*} | sed s%'\.'%$PWD%`
+CONFDIR="${CURRDIR}/conf"
+INSTDIR="${CURRDIR}/inst"
+CONFFILE="${CONFDIR}/afinstal.conf"
+DEFAULTDIR=$CURRDIR
-# [STEP1] Verifico el OS vs SCRIP y la presencia de PERL
+# [STEP1] Verifico el OS vs SCRIPT y la presencia de PERL
echo ">> Verificando version del software contra el OS.."
checkOS
-if [ "$?" -ne 0 ]; then exit 1
+if [ "$?" -ne 0 ]; then
+ abortMessage
+ exit 1
fi
echo ">> Verificando la existencia de PERL.."
checkPerl
-if [ "$?" -ne 0 ]; then exit 1
+if [ "$?" -ne 0 ]; then
+ abortMessage
+ exit 1
fi
echo ">> Proceso de instalacion para $SISOPTP iniciado."
echo ">> Presione ENTER para continuar"
while [ "$key" != "" ]; do
read key
if [ "$key" = "F" ]; then
- echo ">> Proceso de instalacion cancelado"
+ abortMessage
exit 0
fi
done
# [STEP3] Chequeamos si hay componentes ya instalados
+if [ -f "$CONFFILE" ] && [ -s "$CONFFILE" ]; then
+ #Busco los nombres de los binarios
+ binfraude=`grep -n "Comando" "$CONFFILE" | grep 10 | sed s%.*Comando.%%`
+ binconf=`grep -n "Comando" "$CONFFILE" | grep 20 | sed s%.*Comando.%%`
+ binmonio=`grep -n "Comando" "$CONFFILE" | grep 30 | sed s%.*Comando.%%`
+ #Busco donde deberian estar instalados
+ dirfraude=`grep -n "BINDIR" "$CONFFILE" | grep 11 | sed 's%.*= %%'`
+ dirconf=`grep -n "BINDIR" "$CONFFILE" | grep 21 | sed 's%.*= %%'`
+ dirmonio=`grep -n "BINDIR" "$CONFFILE" | grep 31 | sed 's%.*= %%'`
+ # Verifico finalmente si esta alli el archivo, en caso negativo, habilito
+ # la posibilidad de instalar ese componente
+ if [ ! -f "${dirmonio}/$binmonio" ]; then
+ choices="AFIMONIO"
+ havemonio=0
+ else
+ havemonio=1
+ usermonio=`grep -n "USERID" "$CONFFILE" | grep 35 | sed 's%.*= %%'`
+ fechamonio=`grep -n "FECINS" "$CONFFILE" | grep 36 | sed 's%.*= %%'`
+ fi
+
+ if [ ! -f "${dirfraude}/$binfraude" ]; then
+ choices="${choices} ANTIFRAUDE"
+ havefraude=0
+ else
+ havefraude=1
+ userfraude=`grep -n "USERID" "$CONFFILE" | grep 17 | sed 's%.*= %%'`
+ fechafraude=`grep -n "FECINS" "$CONFFILE" | grep 18 | sed 's%.*= %%'`
+ fi
+ if [ ! -f "${dirconf}/$binconf" ]; then
+ choices="${choices} AFICONF"
+ haveconf=0
+ else
+ haveconf=1
+ userconf=`grep -n "USERID" "$CONFFILE" | grep 25 | sed 's%.*= %%'`
+ fechaconf=`grep -n "FECINS" "$CONFFILE" | grep 26 | sed 's%.*= %%'`
+ fi
+ choices=${choices% }
+ choices=${choices# }
+fi
# [STEP4] Seleecion de los componentes a instalar
-# TODO: tener en cuenta los que ya estan
+# TODO: tener en cuenta los que ya estan y no permitir elegirlos
+if [ -z "$choices" ]; then
+ showInstalled
+ abortMessage
+ exit 0
+fi
selectModules
# [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
-
-# Si no existe el afinstal.conf, lo creo y agrego las primeras 2 lineas
-if [ ! -f "$CONFFILE" ]; then
+if [ ! -f "$CONFFILE" ] || [ ! -s "$CONFFILE" ]; then
touch "$CONFFILE"
echo "INSTDIR = $INSTDIR" >> $CONFFILE
echo "CONFDIR = $CONFDIR" >> $CONFFILE
cancelar el proceso oprima cualquier otra tecla y luego ENTER.
MARCA
read choice
- if [ -n "$choice" ]; then exit 1
+ if [ -n "$choice" ]; then
+ abortMessage
+ exit 1
fi
# Comienzo a crear la estructura de directorios definida (Check permisos!!)
# [STEP6] Ofrecer arrancar el Afimonio si estan los tres paquetes instalados
# [STEP7] Mostrar en un recuadro que se encuentra instalado en el sistema
-
-
-################## NO DAR BOLA A TODO LO QUE SIGUE ########################
-exit 0
-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/\.\*\=\ //`
- 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
-
- #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
-fi