#!/usr/bin/env bash
#
# This script will package and compress logs to save space and prune older packaged logs
#

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null && pwd)"

REPORTS_DIR_NAME="reports"
ARCHIVE_DIR_NAME="archive"
REPORTS_DIR="${SCRIPT_DIR}/${REPORTS_DIR_NAME}"
ARCHIVE_DIR="${SCRIPT_DIR}/${ARCHIVE_DIR_NAME}"
DATE_STR=$(date +"%m-%d-%y_%H-%M")
FILENAME="reports_${DATE_STR}.tar.gz"

cd ${REPORTS_DIR} || $(echo "Failed to archive cache warmer logs!" && exit 1)
echo "Archiving cache warmer logs..."
# only package files at least 60 minutes old (newer may be in-progress)
find . -maxdepth 1 -type f -name "prod*.csv" -mmin +60 -exec tar -czf "${ARCHIVE_DIR_NAME}/prod_${FILENAME}" "{}" \+
find . -maxdepth 1 -type f -name "prod*.csv" -mmin +60 -exec rm "{}" \+
find . -maxdepth 1 -type f -name "stage*.csv" -mmin +60 -exec tar -czf "${ARCHIVE_DIR_NAME}/stage_${FILENAME}" "{}" \+
find . -maxdepth 1 -type f -name "stage*.csv" -mmin +60 -exec rm "{}" \+
echo "Archived cache warmer logs successfully."
# prune archives older than 14 days
find ${ARCHIVE_DIR_NAME} -maxdepth 1 -type f -name "*.tar.gz" -mtime +14 -exec rm "{}"
echo "Pruned archives older than 14 days"
