From 6f42f8e732eee142e8e04597f1410973b38567b5 Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Sun, 4 Aug 2013 04:54:09 +0200 Subject: use socket instead of pipe for communication to phenny --- format-notify | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/format-notify b/format-notify index 5f9dddd..59a9740 100755 --- a/format-notify +++ b/format-notify @@ -1,6 +1,6 @@ #!/usr/bin/env python -import os, sys, re, errno, time, random, syslog +import os, sys, re, syslog, socket def add_color(status): if status == 'WARNING': @@ -20,7 +20,7 @@ def clean_output(status, output): def main(): if len(sys.argv) < 5: - print('Usage: %s (PIPE|--test) SERVICE STATUS OUTPUT' % sys.argv[0]) + print('Usage: %s (SOCKET|--test) SERVICE STATUS OUTPUT' % sys.argv[0]) sys.exit(1) file = sys.argv.pop(1) @@ -38,20 +38,14 @@ def main(): if not os.path.exists(file): sys.exit(1) - now = time.time() - while True: - try: - f = os.open(file, os.O_WRONLY | os.O_NONBLOCK) - break - except OSError: - if time.time() - now > 2: - syslog.syslog("Dropping message: '%s'" % msg) - sys.exit(1) - else: - time.sleep(random.random() * 0.3) - - os.write(f, msg) - os.close(f) + s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + try: + s.connect(file) + s.sendall(msg) + s.close() + except socket.error: + syslog.syslog("Dropping message: '%s'" % msg) + sys.exit(1) if __name__ == '__main__': main() -- cgit v1.2.3-1-g7c22