#!/usr/bin/env bash
# =================================================================================================
# Moteur de compression et d'export du rapport
# =================================================================================================
compress_and_export(){
# Definition du repertoire de sortie et du nom du fichier compresse suivant la nomemclature report_AAAAMMDD_HHMMSS.tar.gz
# Sur la base du repertoire et du nom du fichier, on definit le nom de l'archive en chemin absolu
local output_dir="${1:-}" # recuperation du premier argument CLI, s'il n'est pas defini, on recupere la valeur par defaut (cf main.sh)
local timestamp=$(date +"%Y%m%d_%H%M%S")
local archive_name="${output_dir}/report_${timestamp}.tar.gz"
# Creation de l'archive
local temp_doc=$(mktemp) # la commande mktemp permet de creer un fichier temporaire que nous allons transformer par la suite
cat > "${temp_doc}" # on recupere les donnees en sortie standard de l'extracteur qu'on envoie dans le fichier temporaire
tar -czf "${archive_name}" -C "$(dirname "${temp_doc}")" "$(basename "${temp_doc}")" --transform="s/$(basename "${temp_doc}")/sanitized_extract.log/" 2>/dev/null
# Recuperation du code de sortie de l'operation precedente, visant a creer l'archive et suppression du fichier temporaire
local exit_code=$?
rm -f "${temp_doc}"
# Si le code de sortie est correct (0), affichage du nom de l'archive creee
# Dans le cas contraire, affichage d'un message d'erreur indiquant que la creation de l'archive a echoue
if [[ ${exit_code} -eq 0 ]] ; then
echo "${archive_name}"
return 0
else
echo "[!] ERREUR: Echec de la creation de l'archive compressee." >&2
return 1
fi
}