#!/bin/bash

# Email logs of failed e2scrub unit runs when the systemd service fails.

mntpoint="$1"
test -z "${mntpoint}" && exit 0

if ! type sendmail > /dev/null 2>&1; then
	echo "$0: sendmail program not found."
	exit 1
fi

if test -f /etc/e2scrub.conf ; then
   . /etc/e2scrub.conf
fi

hostname="$(hostname -f 2>/dev/null)"
test -z "${hostname}" && hostname="${HOSTNAME}"
service_name="$(systemd-escape --template "e2scrub@.service" --path "${mntpoint}")"

if test -z "${recipient}" ; then
    recipient="root"
fi

if test -z "${sender}" ; then
    sender="<e2scrub@${hostname}>"
fi

(cat << ENDL
To: ${recipient}
From: ${sender}
Subject: e2scrub failure on ${mntpoint}

So sorry, the automatic e2scrub of ${mntpoint} on ${hostname} failed.

A log of what happened follows:
ENDL
systemctl status --full --lines 4294967295 "${service_name}") | sendmail -t -i
