From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1571 invoked by uid 1002); 19 Aug 2003 05:37:25 -0000 Mailing-List: contact gentoo-dev-help@gentoo.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@gentoo.org Received: (qmail 12865 invoked from network); 19 Aug 2003 05:37:25 -0000 Date: Tue, 19 Aug 2003 01:37:23 -0400 From: Owen Gunden To: gentoo-dev@gentoo.org Message-ID: <20030819053722.GA28151@force.stwing.upenn.edu> Mail-Followup-To: gentoo-dev@gentoo.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="EeQfGwPcQSOJBaQU" Content-Disposition: inline User-Agent: Mutt/1.5.4i Subject: [gentoo-dev] patch: emergemail feature in functions.sh X-Archives-Salt: 81c56c4a-b910-4f26-a224-9812d528057b X-Archives-Hash: e3d98121b5723d432fccc559f093faf8 --EeQfGwPcQSOJBaQU Content-Type: text/plain; charset=us-ascii Content-Disposition: inline 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 --EeQfGwPcQSOJBaQU Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="functions.sh.patch" --- 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" "${*}" --EeQfGwPcQSOJBaQU Content-Type: text/plain; charset=us-ascii -- gentoo-dev@gentoo.org mailing list --EeQfGwPcQSOJBaQU--