Presence Tracker (untested)
[svn42.git] / update-web-status.py
index a392e0e..1de42ad 100755 (executable)
@@ -33,6 +33,8 @@ class UWSConfig:
     self.config_parser.set('web','htmlclosed','<html><body bgcolor="red"><b><center>T&uuml;r ist Geschlossen</center></b></body></html>')
     self.config_parser.add_section('debug')
     self.config_parser.set('debug','enabled',"False")
+    self.config_parser.add_section('tracker')
+    self.config_parser.set('tracker','socket',"/var/run/tuer/presence.socket")    
     self.config_mtime=0
     if not self.configfile is None:
       try:
@@ -197,6 +199,10 @@ RE_REQUEST = re.compile(r'Request: (\w+) (?:Card )?(.+)')
 RE_ERROR = re.compile(r'Error: (.+)')
 while True:
   try:
+    if not os.path.exists(socketfile):
+      logging.debug("Socketfile '%s' not found, waiting 5 secs" % socketfile)
+      time.sleep(5)
+      continue
     sockhandle = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
     sockhandle.connect(socketfile)
     conn = os.fdopen(sockhandle.fileno())
@@ -208,6 +214,9 @@ while True:
       
       uwscfg.checkConfigUpdates()
       
+      if line == "":
+        raise Exception("EOF on Socket, daemon seems to have quit")
+      
       m = RE_STATUS.match(line)
       if not m is None:
         status = m.group(1)
@@ -231,5 +240,6 @@ while True:
       sockhandle.close()
     except:
       pass
+    conn=None
+    sockhandle=None      
     time.sleep(5)
-