From: Alan Kennedy Date: Mon, 11 Oct 2004 08:15:48 +0000 (+0000) Subject: Ya tengo en cuenta componentes instalados permitiendo instalar solo los que falten... X-Git-Tag: svn_import~141 X-Git-Url: https://git.llucax.com/z.facultad/75.08/llamadas.git/commitdiff_plain/a18b3855ba65325afb80830a34c5643c6aec7eb8?hp=2c52d0edf3050721c5678cce6daeb1fbc46f22b3 Ya tengo en cuenta componentes instalados permitiendo instalar solo los que falten ya sea porque no se instalaron nunca o bien porque borraron el binario. Tambien si esta todo isntalado, muestro cartel con fecha de instalacion y UID del que lo instalo. Solo me resta sacar el cartel al final de la instalacion de los componentes, y ofrecer arrancar el demonio. Salvaguardando tema checkeos de permisos varios, estaria cuasi liquidado --- diff --git a/BUGAFINSTAL b/BUGAFINSTAL index 9c56556..e535294 100755 --- a/BUGAFINSTAL +++ b/BUGAFINSTAL @@ -65,10 +65,37 @@ function changeLine() { 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 <> 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" @@ -163,25 +198,63 @@ key="something" 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 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 - if [ ! -f "$CONFFILE" ] || [ ! -s "$CONFFILE" ]; then touch "$CONFFILE" echo "INSTDIR = $INSTDIR" >> $CONFFILE @@ -282,7 +355,9 @@ Si desea iniciar la instalaci 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!!) @@ -330,65 +405,3 @@ done # [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<