#!/usr/bin/env bash
# ========================================================================================
# Module d'extraction des journeaux depuis le repertoire specifie
# ========================================================================================
extract_logs(){
# Recuperation des arguments introduits par l'utilisateur dont le repertoire cible et le nombre de lignes a extraire
local log_dir="${1}"
local lines_count="${2}"
# Activiation de nullglob afin d'eviter des effets indesirables au cas ou le repertoire specifie serait vide, ce qui entrainerait en temps normal une execution litterale de la chaine de caracteres resultante par l'interpreteur
shopt -s nullglob
local log_files=("${log_dir}"/*.log)
shopt -u nullglob
# Si aucun fichier n'est present dans le repertoire cible, on genere une erreur
if [[ ${#log_files[@]} -eq 0 ]]; then
echo "[!] AVERTISSEMENT: Aucun fichier log n'a ete trouve dans '${log_dir}'. " >&2
return 1
fi
# Sinon, suite de l'execution du programme (on genere les x dernieres lignes, soit le nombre par defaut, soit la valeur fournie par l'utilisateur)
for file in "${log_files[@]}" ; do
if [[ -r "${file}" ]] ; then
echo "=== LOG SOURCE: ${file} ==="
tail -n "${lines_count}" "${file}"
else
echo "[!] AVERTISSEMENT: Lecture impossible du fichier '${file}'." >&2
fi
done
return 0
}