#!/bin/sh -
#
# Copyright (c) 1995, 2006 Ederson de Moura <ederbs@ederbs.org>
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer
#    in this position and unchanged.
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in the
#    documentation and/or other materials provided with the distribution.
# 3. The name of the author may not be used to endorse or promote products
#    derived from this software without specific prior written permission
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#

PROG="upsdaemon-alerts";
VERSION="1.0";

SERV=`hostname -s`;
WHOA=`whoami`;
TIME=`date +%H:%M:%S`;
DATE=`date`;

DIRE=/usr/local/libexec/upsdaemon
LOGS=/var/log

if ! [ -f $LOGS/$PROG.log ]; then	
	touch $LOGS/$PROG.log;	
fi

#
# Function Battery
#
battery()
{

ROUT="-battery";

wall <<EOM

     *** UPS POWER IS FAILING ***

                '''
               (o o)
+---------oOOO--(_)------------------+
| Emergency shutdown is in progress  |
|         Please logout now !!!      |
|             UpsDaemon              |
+----------------------oOOO----------+
              |__|__|
               || ||
              ooO Ooo
EOM


    echo "$DATE $SERV ($WHOA) Routine executed --> $DIRE $ROUT" >> $LOGS/$PROG.log 2>&1

    sleep 3;
   /sbin/shutdown -p now
    
exit 1;

}

#
# Function down
#
down() 
{
	
ROUT="-down";

wall <<EOM

    *** UPS LINE POWER IS FAILED ***

                '''
               (o o)
+---------oOOO--(_)------------------+
|     The system is shutting down    |
|         Please Logout Now !!!      |
|             UpsDaemon              |
+----------------------oOOO----------+
              |__|__|
               || ||
              ooO Ooo
EOM

    echo "$DATE $SERV ($WHOA) Routine executed --> $DIRE $ROUT" >> $LOGS/$PROG.log 2>&1
    
    sleep 3;
   /sbin/shutdown -p now

exit 1; 

}

#
# Function Failded
#
failed()
{
	
ROUT="-failed";

wall <<EOM

    *** UPS LINE POWER IS FAILED ***

                '''
               (o o)
+---------oOOO--(_)------------------+
|       Please finish your work      |
|     Save your files and logout !!! |
|             UpsDaemon              |
+----------------------oOOO----------+
              |__|__|
               || ||
              ooO Ooo
 Shutdown the system within 5 minutes
EOM

    echo "$DATE $SERV ($WHOA) Routine executed --> $DIRE $ROUT" >> $LOGS/$PROG.log 2>&1

exit 1;

}

#
# Function Recovery
#
recovery()
{

ROUT="-recovery";

wall <<EOM

    *** UPS LINE POWER RESTORED ***

                '''
               (o o)
+---------oOOO--(_)------------------+
|     You can continue you work      |
|              Bye !!!               |
|            UpsDaemon               |
+----------------------oOOO----------+
              |__|__|
               || ||
              ooO Ooo
EOM

    echo "$DATE $SERV ($WHOA) Routine executed --> $DIRE $ROUT" >> $LOGS/$PROG.log 2>&1

exit 1;

}

#
# Case for function
#
case "$1" in

        '-battery')
	           battery
		   return;
		   ;;
		   
	'-down')
	          down
		  return;
		  ;;
		  
	'-failed')
	          failed
		  return;
		  ;;
		  
	'-recovery')
                  recovery
		  return;
		  ;;
	*)
	          echo "Usage: upsdaemon-alerts [-battery] [-down] [-failed] [-recovery]"
	          exit 1;
	          ;;					 
	  esac

exit 0;
