#!/bin/bash

######################################################
### no apparmor STATUS entries marked as unmatched ###
######################################################

set -eo pipefail

LOGWATCH_CONF_FILE="/etc/logwatch/conf/logwatch.conf"
NEED_ERASING=1

clear_logwatch_conf_file(){
    if [ "${NEED_ERASING}" -eq "0" ]; then 
        if [ -e "${LOGWATCH_CONF_FILE}".test.bak ]; then
            cp "${LOGWATCH_CONF_FILE}".test.bak "${LOGWATCH_CONF_FILE}"
            rm "${LOGWATCH_CONF_FILE}".test.bak
        else
            rm "${LOGWATCH_CONF_FILE}"
        fi
    fi
}

trap ' clear_logwatch_conf_file ' 0 INT QUIT ABRT PIPE TERM

cp "$(dirname "${0}")"/data/unmatched-entries-apparmor_kern.log "${AUTOPKGTEST_TMP}"/kern.log

if  ! [ -f "${LOGWATCH_CONF_FILE}" ] ; then
    echo "AppendVarLogToLogDirs = 0" >> "${LOGWATCH_CONF_FILE}"
elif ! grep -q "^AppendVarLogToLogDirs" "${LOGWATCH_CONF_FILE}" ; then
    cp "${LOGWATCH_CONF_FILE}" "${LOGWATCH_CONF_FILE}".test.bak
    echo "AppendVarLogToLogDirs = 0" >> "${LOGWATCH_CONF_FILE}"
else
    sed -i.test.bak 's/^\(AppendVarLogToLogDirs = \).*/\10/' "${LOGWATCH_CONF_FILE}"
fi
NEED_ERASING=0

if logwatch --detail High --range all --service kernel --logdir "${AUTOPKGTEST_TMP}" --output stdout | grep -qF "**Unmatched Entries**"; then
    exit 1
else
    exit 0
fi
