#!/bin/bash
###############################################################################
# Script de instalacion de BulmaGes
# (C) Tomeu Borras, y Rene Merou Septiempbre 2004, 2005, 2006
# Este documento es GPL
#------------------------------------------------------------------------------
# Parametros
#     $1 : --texto
#          --dialog (por defecto)
###############################################################################


version="v"`cat version`" - client"

direj=$(pwd)


# Buscamos el parametro para saber si es texto o no.
if [ "$1" = "--texto" ]; then
  texto="1"
  ptexto="--texto"
else
  texto="0"
  ptexto="--dialog"
fi

# Borramos antiguos archivos que puedan dar problemas.
if [ -e /tmp/bulmages/errores.txt ]; then
    rm -f /tmp/bulmages/errores.txt
fi
if [ -e /tmp/bulmages/listdb.lst ]; then
   rm /tmp/bulmages/listdb.lst
fi
if [ -e /tmp/bulmages/listuser.lst ]; then
   rm /tmp/bulmages/listuser.lst
fi
if [ -e /tmp/bulmages/error.txt ]; then
   rm /tmp/bulmages/error.txt
fi


# Esta funcion presenta mensajes por pantalla.
function mensaje() {
   if [ ! -e /usr/bin/dialog -a ! -e /usr/bin/xdialog -o $texto = 1 ]; then
      echo -e "$2" "$1"  "$3"
   elif [ -e /usr/bin/xdialog ]; then
      xdialog --title "Instalacion de BulmaGes $version" --backtitle "Asociacion Iglues" --msgbox "$1" 10 60
   else
      dialog --title "Instalacion de BulmaGes $version" --backtitle "Asociacion Iglues" --msgbox "$1" 10 60
   fi
}

# Esta funcion presenta mensajes.
function info() {
   if [ ! -e /usr/bin/dialog -a ! -e /usr/bin/xdialog -o $texto = 1 ]; then
      echo -e  "$2" "$1"  "$3"
   elif [ -e /usr/bin/xdialog ]; then
      xdialog --title "Instalacion de BulmaGes $version" --backtitle "Asociacion Iglues" --infobox "$1" 10 60
   else
      dialog --title "Instalacion de BulmaGes $version" --backtitle "Asociacion Iglues" --infobox "$1" 10 60
   fi
}

function tiempo {
  sleep 1.5
}

function linea {
   if [ ! -e /usr/bin/dialog -a ! -e /usr/bin/xdialog -o $texto = 1 ]; then
     echo -e "\033[32m----------------------------------------------\033[0m\n"
   fi
}

# Comprobamos que estamos ejecutando como root el programa.
if [ ! $(whoami) = "root" ]; then
   mensaje "Este script de instalacion debe ejecutarse como root. \n"
   exit 1
fi


# Iniciamos el tema de los errores.
if [ -e /tmp/bulmages/errores.txt ]; then
    rm -f /tmp/bulmages/errores.txt
fi

# Comprobamos que estamos en el directorio adecuado.
if [ ! -e ./installbulmages-client ]; then
 mensaje "Directorio incorrecto. La instalacion debe ejecutarse desde el directorio donde se encuentra el script. \n"
 exit 1
fi

# Distinguimos entre una instalacion y una actualizacion.
info "Comprobando la existencia de versiones anteriores. \n" "\033[32m" "\033[0m"
tiempo
if [ -e /etc/bulmages/bulmages.conf ]; then
   # Tambien actualizarmos el fichero de backup.
   info "Realizando backup del archivo de configuracion."
   tiempo
   cp /etc/bulmages/bulmages.conf bulmages-`date +%Y%m%d`.conf

   for j in `ls rev-bulmages*.conf | sort`
   do
      if [ ! -e /usr/share/bulmages/$j ]; then
         info "Aplicamos parche $j a bulmages.conf"
         cat $j >> /etc/bulmages/bulmages.conf
      fi
   done

   # Presentamos los errores acaecidos.
   if [ -e /tmp/bulmages/errores.txt ]; then
      cat /tmp/bulmages/errores.txt | grep ERROR
   fi
else

   # Tratamos el archivo de configuracion.
   info "Instalando la nueva version del archivo de configuracion. \n"
   mkdir /etc/bulmages
   cp bulmages.conf /etc/bulmages/bulmages.conf

   # Presentamos los errores acaecidos.
   if [ -e /tmp/bulmages/errores.txt ]; then
      cat /tmp/bulmages/errores.txt | grep ERROR
   fi
fi


# Hacemos una insercion inicial de las bases de datos.
   info "Inicializando directorio /usr/share/bulmages.\n"
   tiempo
   if [ ! -e /usr/share/bulmages ]; then
      mkdir /usr/share/bulmages
   fi


# Copiamos todos los archivos de la nueva version a sus localizaciones normales.
info "Instalando archivos de imagenes de Splash y de logotipo. \n"
tiempo
cp *.jpg /usr/share/bulmages
cp *.png /usr/share/bulmages

info "Instalando ejecutable del programa y scripts auxiliares. \n"
tiempo
cp bulmages /usr/bin
cp cargaemp /usr/bin
cp guardaemp /usr/bin
cp nuevaemp  /usr/bin
cp bulmafact /usr/bin
cp bulmacont /usr/bin

info "Instalando libreria de Bulmalib"
tiempo
cp -d libbulmalib* /usr/lib

info "Instalando archivos de revision del archivo de configuracion. \n"
tiempo
cp rev-* /usr/share/bulmages

info "Instalando archivos de ayuda del programa, imagenes, iconos, listados y traducciones. \n"
tiempo
cp -r dbmodels /usr/share/bulmages
#cp -r backgrounds /usr/share/bulmages
cp -r ayuda /usr/share/bulmages
#cp -r reports /usr/share/bulmages
cp -r css /usr/share/bulmages
cp -r icons /usr/share/bulmages
cp -r traducciones /usr/share/bulmages
cp -r formularios /usr/share/bulmages
cp -r ainteligentes /usr/share/bulmages
cp -r balances /usr/share/bulmages
#cp -r kugar /usr/share/bulmages
cp -r openreports /usr/share/bulmages


############################################
############ Inicio efactura ###############
############################################

info "Instalando archivos necesarios para exportacion a factura electronica en formato UBL 1.0. \n";

# Por ahora aqui dentro solo esta la plantilla para generar efacturas
# y los dos scripts en python para enviarlas y recibirlas por e-mail
cp -r efactura /usr/share/bulmages

# Copiamos los scripts a /usr/lib/bulmages
cp enviamail.py /usr/lib/bulmages
cp recibemail.py /usr/lib/bulmages

############################################
############## Fin efactura# ###############
############################################

info "Instalando plugins iniciales. \n"
if [ ! -e /usr/lib/bulmages ]; then
        mkdir /usr/lib/bulmages
fi
cp -r plugins /usr/lib/bulmages
tiempo

cp bgtrml2pdf/bgtrml2pdf /usr/bin/
cp bgtrml2pdf/bgcolor.py /usr/lib/bulmages/
cp bgtrml2pdf/bgutils.py /usr/lib/bulmages/


mensaje "INSTALACION FINALIZADA CON EXITO" "\033[32m" "\033[0m"
