--- functions-old.sh 2003-08-18 21:49:35.000000000 -0400 +++ functions.sh 2003-08-19 19:32:13.000000000 -0400 @@ -121,6 +121,53 @@ BRACKET=$'\e[34;01m' fi + +# void sendmessages(void) +# +# send any einfo, ewarn, or eerror messages that have collected +# upon exit of this shell (part of the emergemail feature). +# +trap sendmessages EXIT +sendmessages() { + for SEVERITY in "information" "warning" "error"; do + BUFFER=${TMPDIR}/emergemail.buffer.${SEVERITY} + if [ -f ${BUFFER} ]; then + if [ -x /usr/sbin/sendmail ]; then + /usr/sbin/sendmail root < ${BUFFER} + unset ${EMESSAGES} + else + echo -e " ${WARN}*${NORMAL} the emergemail FEATURE "\ + "was unable to find /usr/sbin/sendmail. " + echo -e " ${WARN}*${NORMAL} You must have a Mail "\ + "Transfer Agent (MTA) such as postfix, exim," + echo -e " ${WARN}*${NORMAL} ssmtp, etc. to use this "\ + "feature." + fi + rm -f ${BUFFER} + fi + done +} + + +# 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 + BUFFER=${TMPDIR}/emergemail.buffer.${SEVERITY} + if echo ${FEATURES} | grep -iq emergemail; then + if [ ! -f ${BUFFER} ]; then + echo "Subject: ${SEVERITY} from emerge of ${P}" > ${BUFFER} + echo -e "To: root\n\n" >> ${BUFFER} + fi + echo -e ${MESSAGE} >> ${BUFFER} + fi +} + # void esyslog(char* priority, char* tag, char* message) # # use the system logger to log a message @@ -153,6 +200,8 @@ echo -e " ${GOOD}*${NORMAL} ${*}" fi + emergemail information "${*}" + return 0 } @@ -166,6 +215,8 @@ echo -ne " ${GOOD}*${NORMAL} ${*}" fi + emergemail information "${*}" + return 0 } @@ -181,6 +232,8 @@ echo -e " ${WARN}*${NORMAL} ${*}" fi + emergemail warning "${*}" + # Log warnings to system log esyslog "daemon.warning" "rc-scripts" "${*}" @@ -199,6 +252,8 @@ echo -e " ${BAD}*${NORMAL} ${*}" fi + emergemail error "${*}" + # Log errors to system log esyslog "daemon.err" "rc-scripts" "${*}"