public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] patch: emergemail feature in functions.sh
@ 2003-08-19  5:37 Owen Gunden
  2003-08-19  5:44 ` Jon Portnoy
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Owen Gunden @ 2003-08-19  5:37 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 769 bytes --]

Hi,

Attached is a small patch for the file functions.sh (part of baselayout)
which implements the feature "emergemail" (set in /etc/make.conf FEATURES).
When this feature is turned on (and an mta is present), all einfo, ewarn,
and eerror messages are emailed to root.

This is useful if you upgrade or install multiple packages at once, and you
don't want to miss any important messages that go whizzing by.

There is a major flaw with the current implementation.  Namely, you get an
email for _every_ invocation of einfo, ewarn, or error.  The way those
functions are commonly used (repeated calls for multi-line messages) makes
avoiding this flaw quite difficult without rather sweeping changes to the
design of emerge/ebuild.

Comments or suggestions welcome.
Owen

[-- Attachment #2: functions.sh.patch --]
[-- Type: text/plain, Size: 1695 bytes --]

--- functions-old.sh	2003-08-18 21:49:35.000000000 -0400
+++ functions.sh	2003-08-19 01:23:25.000000000 -0400
@@ -121,6 +121,31 @@
 	BRACKET=$'\e[34;01m'
 fi
 
+# void emergemail(char *severity, char *message)
+#
+#	send mail to root with the given message (if possible)
+#	severity is either "information" (for einfo),
+#					   "warning" (for ewarn),
+#					or "error" (for eerror).
+#
+emergemail() {
+	SEVERITY=$1
+	MESSAGE=$2
+	if echo ${FEATURES} | grep -iq emergemail; then
+		if [ -x /usr/sbin/sendmail ]; then
+			echo -e "Subject: ${SEVERITY} from emerge of ${P}\n\n${MESSAGE}" \
+						| /usr/sbin/sendmail root 
+		else
+			# don't you dare try to use ewarn here :)
+			echo -e " ${WARN}*${NORMAL} the emergemail feature was unable to"
+			echo -e " ${WARN}*${NORMAL} find /usr/sbin/sendmail.  You must have"
+			echo -e " ${WARN}*${NORMAL} a Mail Transfer Agent (MTA) such as"
+			echo -e " ${WARN}*${NORMAL} postfix, exim, ssmtp, etc. to use this"
+			echo -e " ${WARN}*${NORMAL} feature."
+		fi
+	fi
+}
+
 # void esyslog(char* priority, char* tag, char* message)
 #
 #    use the system logger to log a message
@@ -153,6 +178,8 @@
 		echo -e " ${GOOD}*${NORMAL} ${*}"
 	fi
 
+	emergemail information "${*}"
+
 	return 0
 }
 
@@ -166,6 +193,8 @@
 		echo -ne " ${GOOD}*${NORMAL} ${*}"
 	fi
 
+	emergemail information "${*}"
+
 	return 0
 }
 
@@ -181,6 +210,8 @@
 		echo -e " ${WARN}*${NORMAL} ${*}"
 	fi
 
+	emergemail warning "${*}"
+
 	# Log warnings to system log
 	esyslog "daemon.warning" "rc-scripts" "${*}"
 
@@ -199,6 +230,8 @@
 		echo -e " ${BAD}*${NORMAL} ${*}"
 	fi
 
+	emergemail error "${*}"
+
 	# Log errors to system log
 	esyslog "daemon.err" "rc-scripts" "${*}"
 


[-- Attachment #3: Type: text/plain, Size: 37 bytes --]

--
gentoo-dev@gentoo.org mailing list

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2003-08-19 23:53 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-08-19  5:37 [gentoo-dev] patch: emergemail feature in functions.sh Owen Gunden
2003-08-19  5:44 ` Jon Portnoy
2003-08-19  5:54 ` Mike Frysinger
2003-08-19  6:50 ` Karsten Schulz
2003-08-19  8:34   ` Owen Gunden
2003-08-19 23:53   ` Owen Gunden
2003-08-19 13:05 ` Thomas de Grenier de Latour

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox