#!/bin/bash

# Rendre les règles logrotate OpenNebula autonomes.
#
# Les unités systemd OpenNebula lancent logrotate directement sur les fichiers
# /etc/logrotate.d/opennebula* sans passer par /etc/logrotate.conf
# Dans ce cas /etc/logrotate.d/00-eole-options n'est pas chargé et donc l'option
# globale EOLE "compress" n'est pas appliquée.

OPENNEBULA_LOGROTATE_FILES="
/etc/logrotate.d/opennebula
/etc/logrotate.d/opennebula-flow
/etc/logrotate.d/opennebula-gate
/etc/logrotate.d/opennebula-hem
/etc/logrotate.d/opennebula-novnc
/etc/logrotate.d/opennebula-scheduler
/etc/logrotate.d/opennebula-sunstone
"

for file in ${OPENNEBULA_LOGROTATE_FILES}; do
    [ -f "${file}" ] || continue

    # Ne rien faire si la règle est déjà autonome.
    if grep -Eq '^[[:space:]]*compress[[:space:]]*$' "${file}"; then
        continue
    fi

    if grep -Eq '^[[:space:]]*copytruncate[[:space:]]*$' "${file}"; then
        sed -i '/^[[:space:]]*copytruncate[[:space:]]*$/a\    compress' "${file}"
    fi
done

exit 0