--- /dev/null
+#! /usr/bin/awk -f
+
+BEGIN {
+ n_ignored = split(opt_ignore_alerts_from, ignored, "[ \t\n]+")
+ for (i = 1; i <= n_ignored; i++) {
+ ignored_alert_sources[ignored[i]] = 1
+ }
+}
+
+/^STATUS_BAR / { shift(); handle_status_bar(); next }
+/^ALERT / { shift(); handle_alert() ; next }
+/^ERROR / { shift(); handle_error() ; next }
+
+function handle_status_bar() {
+ system("xsetroot -name \" " $0 "\" ")
+}
+
+function handle_alert( src, priority, subject, sep, body, urgency, dbg) {
+ src = $1
+ priority = $2
+ subject = $3
+ shift()
+ shift()
+ shift()
+ body = $0
+ sep = body ? "\n" : ""
+ body = body sep "--" src
+
+ urgency = priority
+ sub("hi" , "critical", urgency)
+ sub("med", "normal" , urgency)
+
+ dbg["priority"] = priority
+ dbg["urgency"] = urgency
+ dbg["subject"] = subject
+ dbg["body"] = body
+ debug("ALERT properties", dbg)
+
+ if (src in ignored_alert_sources) {
+ debug("ALERT ignoring from " src, ignored_alert_sources)
+ } else {
+ debug("ALERT sending from " src, ignored_alert_sources)
+ notify_send(urgency, subject, body)
+ }
+}
+
+function handle_error() {
+ notify_send("normal", "Khatus_Error", $0)
+}
+
+function notify_send(urgency, subject, body, cmd) {
+ cmd = \
+ sprintf(\
+ "DISPLAY=%s notify-send -u %s %s \" %s\"",
+ display, urgency, subject, body \
+ )
+ system(cmd)
+}
+
+function shift() {
+ sub("^" $1 " +", "")
+}
+
+function debug(msg, data, sep, vals, key, payload) {
+ sep = ""
+ vals = ""
+ for (key in data) {
+ vals = sprintf("%s%s%s: \"%s\"", vals, sep, key, data[key])
+ sep = ", "
+ }
+ payload = sprintf("[%s] [%s] [%s]", pid, msg, vals)
+ print payload > "/dev/stderr"
+}