diff --git a/monitnotifyer.sh b/monitnotifyer.sh index 848ba49..7b117b3 100755 --- a/monitnotifyer.sh +++ b/monitnotifyer.sh @@ -2,6 +2,8 @@ scrpa="$(/usr/bin/dirname ${0})" monitnotifymbox="/var/mail/monitnotify" monitgrep='^Subject..Monit-Message|^Monit-(Date|Action|Host|Description)' +actionscript="start" +enabledebug=false trignotification() { mailmsg="$(cat ${monitnotifymbox} | grep -E "${monitgrep}")" @@ -28,8 +30,47 @@ trignotification() { fi } -/usr/bin/inotifywait -q -m -e close_write ${monitnotifymbox} | -while read -r filename events -do - if [ "${filename}" == "${monitnotifymbox}" ] ; then trignotification ; fi +usage() { + echo "==================== [ HELP for $(/usr/bin/basename ${0}) ] ====================" + echo " -h > Will show you shit help" + echo " -d > Will enable the debug mode" + echo " -a > (default start) Can be set manually only to start or stop" + echo " for starting or stopping the script" + exit 0 +} + +optstring="a:d?h" + +actr10kbranch="$(git -C ${r10kpwd} branch 2>&1 | grep -E '^\*' | /usr/bin/awk '{print $2}')" + +while getopts ${optstring} c; do + case ${c} in + a) + actionscript="${OPTARG}" + ;; + d) + enabledebug=true + ;; + *) usage ;; + [h\?]) usage ;; + esac done + +actionscript="$(echo ${actionscript} | /usr/bin/tr '[:upper:]' '[:lower:]')" + +if [ "${actionscript}" == "start" ]; then + if [ -z "$(/usr/bin/pgrep -l inotify -u $(/usr/bin/id monitnotify -u))" ]; then + /usr/bin/inotifywait -q -m -e close_write ${monitnotifymbox} | + while read -r filename events + do + if [ "${filename}" == "${monitnotifymbox}" ] ; then trignotification ; fi + done + else + echo "monitnotifyer is already running with pid $(/usr/bin/pgrep -l inotify -u $(/usr/bin/id monitnotify -u) | /usr/bin/awk 'print {$1}')" + fi +elif [ "${actionscript}" == "stop" ]; then + kill -9 $(echo $(/usr/bin/pgrep -l inotify -u $(/usr/bin/id monitnotify -u)) | /usr/bin/cut -f1 -d\ ) > /dev/null 2>&1 + exit 0 +else + usage +fi