File apcupsd-powersave.patch of Package apcupsd

Index: examples/safe.apccontrol.in
===================================================================
--- examples/safe.apccontrol.in.orig
+++ examples/safe.apccontrol.in
@@ -15,96 +15,128 @@ SCRIPTDIR=@sysconfdir@
 #
 case "$1" in
         killpower)
+                /usr/lib/powersave/powersave-notify \
+"apccontrol: ${APCUPSD} --killpower would have been."
                 wall <<EOF
 apccontrol: ${APCUPSD} --killpower would have been.
 
 EOF
         ;;
         commfailure)
+                /usr/lib/powersave/powersave-notify \
+"apccontrol: Communications with UPS lost."
                 wall <<EOF
 apccontrol: Communications with UPS lost.
 
 EOF
         ;;
         commok)
+                /usr/lib/powersave/powersave-notify \
+"apccontrol: Communciations with UPS restored."
                 wall <<EOF
 apccontrol: Communciations with UPS restored.
 
 EOF
         ;;
         powerout)
+                /usr/lib/powersave/powersave-notify \
+"apccontrol: Warning power loss detected."
                 wall <<EOF
 apccontrol: Warning power loss detected.
 
 EOF
         ;;
         onbattery)
+                /usr/lib/powersave/powersave-notify \
+"apccontrol: Power failure. Running on UPS batteries."
                 wall <<EOF
 apccontrol: Power failure. Running on UPS batteries.
 
 EOF
         ;;
         offbattery)
+                /usr/lib/powersave/powersave-notify \
+"apccontrol: Off battery. Mains returned."
                 wall <<EOF
 apccontrol: Off battery. Mains returned.
 
 EOF
         ;;
         failing)
+                /usr/lib/powersave/powersave-notify \
+"apccontrol: UPS battery power exhaused. Doing shutdown."
                 wall <<EOF
 apccontrol: UPS battery power exhaused. Doing shutdown.
 
 EOF
         ;;
         timeout)
+                /usr/lib/powersave/powersave-notify \
+"apccontrol: UPS battery runtime limit exceeded. Doing shutdown."
                 wall <<EOF
 apccontrol: UPS battery runtime limit exceeded. Doing shutdown.
 
 EOF
         ;;
         loadlimit)
+                /usr/lib/powersave/powersave-notify \
+"apccontrol: UPS battery discharge limit reached. Doing shutdown."
                 wall <<EOF
 apccontrol: UPS battery discharge limit reached. Doing shutdown.
 
 EOF
         ;;
         runlimit)
+                /usr/lib/powersave/powersave-notify \
+"apccontrol: UPS battery runtime percent reached. Doing shutdown."
                 wall <<EOF
 apccontrol: UPS battery runtime percent reached. Doing shutdown.
 
 EOF
         ;;
         doreboot)
+                /usr/lib/powersave/powersave-notify \
+"apccontrol: ${SHUTDOWN} for reboot would have been called."
                 wall <EOF
 apccontrol: ${SHUTDOWN} for reboot would have been called.
 
 EOF
         ;;
         doshutdown)
+                /usr/lib/powersave/powersave-notify \
+"apccontrol: ${SHUTDOWN} for halt would have been called."
                 wall <<EOF
 apccontrol: ${SHUTDOWN} for halt would have been called.
 
 EOF
         ;;
         mainsback)
+                /usr/lib/powersave/powersave-notify \
+"apccontrol: Power has returned..."
                 wall <<EOF
 apccontrol: Power has returned...
 
 EOF
         ;;
         annoyme)
+                /usr/lib/powersave/powersave-notify \
+"apccontrol: Power problems please logoff."
                 wall <<EOF
 apccontrol: Power problems please logoff.
 
 EOF
         ;;
         emergency)
+                /usr/lib/powersave/powersave-notify \
+"apccontrol: ${SHUTDOWN} for emergency halt would have been called."
                 wall <<EOF
 apccontrol: ${SHUTDOWN} for emergency halt would have been called.
 
 EOF
         ;;
         changeme)
+                /usr/lib/powersave/powersave-notify \
+"apccontrol: Emergency! UPS batteries have failed."
                 wall <<EOF
 apccontrol: Emergency! UPS batteries have failed.
 
@@ -112,18 +144,24 @@ Change them NOW !
 EOF
         ;;
         remotedown)
+                /usr/lib/powersave/powersave-notify \
+"apccontrol: ${SHUTDOWN} for remote halt would have been called."
                 wall <<EOF
 apccontrol: ${SHUTDOWN} for remote halt would have been called.
 
 EOF
         ;;
         startselftest)
+                /usr/lib/powersave/powersave-notify \
+"apccontrol: start self test would have been called."
                 wall <<EOF
 apccontrol: start self test would have been called.
 
 EOF
         ;;
         endselftest)
+                /usr/lib/powersave/powersave-notify \
+"apccontrol: end self test would have been called."
                 wall <<EOF
 apccontrol: end self test would have been called.
 
Index: platforms/apccontrol.in
===================================================================
--- platforms/apccontrol.in.orig
+++ platforms/apccontrol.in
@@ -25,6 +25,7 @@ SHUTDOWN=@SHUTDOWN@
 SCRIPTSHELL=@SCRIPTSHELL@
 SCRIPTDIR=@sysconfdir@
 WALL=wall
+NOTIFY=/usr/lib/powersave/powersave-notify
 
 #
 # Concatenate all output from this script to the events file
@@ -57,18 +58,23 @@ then
     fi
 fi
 
+function notify() {
+    ${NOTIFY} "$1"
+    echo "$1" | ${WALL}
+}
+
 case "$1" in
     killpower)
-	echo "Apccontrol doing: ${APCUPSD} --killpower on UPS ${2}" | ${WALL}
+	notify "Apccontrol doing: ${APCUPSD} --killpower on UPS ${2}"
 	sleep 10
 	${APCUPSD} --killpower
-	echo "Apccontrol has done: ${APCUPSD} --killpower on UPS ${2}" | ${WALL}
+	notify "Apccontrol has done: ${APCUPSD} --killpower on UPS ${2}"
     ;;
     commfailure)
-	echo "Warning communications lost with UPS ${2}" | ${WALL}
+	notify "Warning communications lost with UPS ${2}"
     ;;
     commok)
-	echo "Communications restored with UPS ${2}" | ${WALL}
+	notify "Communications restored with UPS ${2}"
     ;;
 #
 # powerout, onbattery, offbattery, mainsback events occur
@@ -77,53 +83,53 @@ case "$1" in
     powerout)
     ;;
     onbattery)
-	echo "Power failure on UPS ${2}. Running on batteries." | ${WALL}
+	notify "Power failure on UPS ${2}. Running on batteries."
     ;;
     offbattery)
-	echo "Power has returned on UPS ${2}..." | ${WALL}
+	notify "Power has returned on UPS ${2}..."
     ;;
     mainsback)
 	if [ -f @PWRFAILDIR@/powerfail ] ; then
-	   printf "Continuing with shutdown."  | ${WALL}
+	   notify "Continuing with shutdown."
 	fi
     ;;
     failing)
-	echo "Battery power exhaused on UPS ${2}. Doing shutdown." | ${WALL}
+	notify "Battery power exhaused on UPS ${2}. Doing shutdown."
     ;;
     timeout)
-	echo "Battery time limit exceeded on UPS ${2}. Doing shutdown." | ${WALL}
+	notify "Battery time limit exceeded on UPS ${2}. Doing shutdown."
     ;;
     loadlimit)
-	echo "Remaining battery charge below limit on UPS ${2}. Doing shutdown." | ${WALL}
+	notify "Remaining battery charge below limit on UPS ${2}. Doing shutdown."
     ;;
     runlimit)
-	echo "Remaining battery runtime below limit on UPS ${2}. Doing shutdown." | ${WALL}
+	notify "Remaining battery runtime below limit on UPS ${2}. Doing shutdown."
     ;;
     doreboot)
-	echo "UPS ${2} initiating Reboot Sequence" | ${WALL}
+	notify "UPS ${2} initiating Reboot Sequence"
 	${SHUTDOWN} -r now "apcupsd UPS ${2} initiated reboot"
     ;;
     doshutdown)
 	. /etc/sysconfig/apcupsd
 	if test "$APCUPSD_POWERFAIL_BEHAVIOR" = "hibernate" ; then
-		echo "UPS ${2} initiated hibernation" | ${WALL}
+		notify "UPS ${2} initiated hibernation"
 		$HIBERNATE
 	else
-		echo "UPS ${2} initiated Shutdown Sequence" | ${WALL}
+		notify "UPS ${2} initiated Shutdown Sequence"
 		${SHUTDOWN} -h now "apcupsd UPS ${2} initiated shutdown"
 	fi
     ;;
     annoyme)
-	echo "Power problems with UPS ${2}. Please logoff." | ${WALL}
+	notify "Power problems with UPS ${2}. Please logoff."
     ;;
     emergency)
-	echo "Emergency Shutdown. Possible battery failure on UPS ${2}." | ${WALL}
+	notify "Emergency Shutdown. Possible battery failure on UPS ${2}."
     ;;
     changeme)
-	echo "Emergency! Batteries have failed on UPS ${2}. Change them NOW" | ${WALL}
+	notify "Emergency! Batteries have failed on UPS ${2}. Change them NOW"
     ;;
     remotedown)
-	echo "Remote Shutdown. Beginning Shutdown Sequence." | ${WALL}
+	notify "Remote Shutdown. Beginning Shutdown Sequence."
     ;;
     startselftest)
     ;;