#!/bin/bash -e

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

#
# Parametri
#
# caller:		nome dello script chiamante
# pathOfData:   path dell'area dati gestita dal servizio
# dataBackupPath:
#               path del file che conterra' il backup dell'area dati
#               gestita dal servizio
# 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 $UTILITIES

# Importa la definizione dei messaggi di log
source $LOG_MESSAGES
#
########################################################################

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

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

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

# Traccia il chiamante lo script
appendToLog "$(dateTime) $msgScriptCaller $caller" \
            "$logFilePath"            
            
# Effettua il backup dell'area dati di servizio in formato tar nel
# buffer locale

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

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

# Effettua il tar del contenuto dell'area dati di servizio nel file
# di backup
tar -cf $dataBackupPath .

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

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

exit


