#!/bin/bash -e

#
# dataRestore.sh
#
# Effettua il backup dell'area dati gestita dal servizio
#

#
# Parametri
#
# caller:		nome dello script chiamante
# pathOfData:   path dell'area dati gestita dal servizio
# dataBackupAbsolutePath:
#               path assoluto del file di backup dell'area dati, se
#               presente
# logFilePath:  nome del file di log per il backup
#

########################################################################
#
# Predispone l'ambiente di esecuzione
#

#
# Attenzione!!!!
#    la variabile pmxBackupRestorePath e' valorizzata all'interno
#    del file /etc/profile
#

# Importa la definizione delle costanti simboliche
source $pmxBackupRestorePath/scripts/symbolicConstantsSetup.sh

# Importa la definizione delle utilities
source $PATH_OF_SCRIPTS/utilities.sh

# Importa la definizione dei messaggi di log
source $PATH_OF_SCRIPTS/logMessages.sh
#
########################################################################

# Controlla che il numero dei parametri sia corretto
checkParams $# 4 "$(dateTime) $msgIncorrectParameterNumber \
                                              <caller> \
                                              <pathOfData> \
                                              <dataBackupAbsolutePath> \
                                              <logFilePath>"

# Inizializza le variabili mnemoniche per i parametri
caller=$1
pathOfData=$2       
dataBackupAbsolutePath=$3
logFilePath=$4

# Traccia l'ingresso nello script
appendToLog "$(dateTime) $msgIntoTheScript" \
            "$logFilePath"

# Traccia il chiamante lo script
appendToLog "$(dateTime) $msgScriptCaller $caller" \
            "$logFilePath"

# Controlla se la directory assegnata all'area dati esiste
if test -d $pathOfData 
then
# Se si,ne cancella il contenuto e traccia l'azione
      rm -rf $pathOfData/*
     
     appendToLog "$(dateTime) $msgClearDataContent" \
                 "$logFilePath"
     else
        # Se no, la crea e traccia l'azione
        appendToLog "$(dateTime) $msgDataDirCreation" \
                    "$logFilePath"
                    
        mkdir $pathOfData
fi            


            
# Ripristina il contenuto dell'area dati

# Salva la directory corrente sullo stack
pushd . > /dev/null

# Setta quale directory corrente quella dell'area dati gestita
# dal servizio
cd $pathOfData

# Decomprime ed espande il backup dell'area dati
tar --same-owner -xvf $dataBackupAbsolutePath .

# Ripristina quale directory corrente quella salvata sullo stack
popd > /dev/null

# Traccia l'uscita dallo script
appendToLog "$(dateTime) $msgOutOfTheScript" \
            "$logFilePath"

exit            


