e2scrub: make e2scrub_fail's e-mail addresses be configurable

Allow the sender and recipient e-mail addresses be configurable from
/etc/e2scrub.conf.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
diff --git a/scrub/e2scrub.conf.in b/scrub/e2scrub.conf.in
index 69f997f..5c03087 100644
--- a/scrub/e2scrub.conf.in
+++ b/scrub/e2scrub.conf.in
@@ -1,5 +1,13 @@
 # e2scrub configuration file
 
+# e-mail destination used by e2scrub_fail when problems are found with
+# the file system.
+# recipient=root
+
+# e-mail sender used by e2scrub_fail when problems are found with
+# the file system.
+# sender=e2scrub@host.domain.name
+
 # Snapshots will be created to run fsck; the snapshot will be of this size.
 # snap_size_mb=256
 
diff --git a/scrub/e2scrub_fail.in b/scrub/e2scrub_fail.in
index f27197a..2c0754a 100644
--- a/scrub/e2scrub_fail.in
+++ b/scrub/e2scrub_fail.in
@@ -2,24 +2,37 @@
 
 # Email logs of failed e2scrub unit runs when the systemd service fails.
 
-recipient="$1"
-test -z "${recipient}" && exit 0
-device="$2"
+device="$1"
 test -z "${device}" && exit 0
-hostname="$(hostname -f 2>/dev/null)"
-test -z "${hostname}" && hostname="${HOSTNAME}"
+
 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="e2scrub@$(systemd-escape ${device})"
+
+if test -z "${recipient}" ; then
+    recipient="root"
+fi
+
+if test -z "${sender}" ; then
+    sender="<e2scrub@${hostname}>"
+fi
+
 (cat << ENDL
-To: $1
-From: <e2scrub@${hostname}>
+To: ${recipient}
+From: ${sender}
 Subject: e2scrub failure on ${device}
 
 So sorry, the automatic e2scrub of ${device} on ${hostname} failed.
 
 A log of what happened follows:
 ENDL
-systemctl status --full --lines 4294967295 "e2scrub@${device}") | sendmail -t -i
+systemctl status --full --lines 4294967295 "${service_name}") | sendmail -t -i
diff --git a/scrub/e2scrub_fail@.service.in b/scrub/e2scrub_fail@.service.in
index ffc296a..4bad311 100644
--- a/scrub/e2scrub_fail@.service.in
+++ b/scrub/e2scrub_fail@.service.in
@@ -4,8 +4,7 @@
 
 [Service]
 Type=oneshot
-Environment=EMAIL_ADDR=root
-ExecStart=@pkglibdir@/e2scrub_fail "${EMAIL_ADDR}" %I
+ExecStart=@pkglibdir@/e2scrub_fail "%I"
 User=mail
 Group=mail
 SupplementaryGroups=systemd-journal