]> git.treefish.org Git - mtxbot.git/blobdiff - src/mtxbot.py
be more tolerant on fifo writing
[mtxbot.git] / src / mtxbot.py
index 0843f7d2184439e5e2a42df31bdff46ed7da4ed2..722c8dbb40097d514e70f61ce4da5147b8e12d95 100755 (executable)
@@ -16,10 +16,10 @@ assert sys.version_info >= (3, 5)
 from presence import Presence
 
 def handleInterrupt(sig, frame):
 from presence import Presence
 
 def handleInterrupt(sig, frame):
-    global stopped
+    global stop
     if os.getpid() == mainPid:
         logging.info( "Got stop signal." )
     if os.getpid() == mainPid:
         logging.info( "Got stop signal." )
-        stopped = True
+        stop = True
         for presence in presences:
             presence.stop()
 
         for presence in presences:
             presence.stop()
 
@@ -52,7 +52,7 @@ logging.basicConfig(format='[%(asctime)s] %(levelname)s: %(message)s',
 mainPid = os.getpid()
 signal.signal(signal.SIGINT, handleInterrupt)
 
 mainPid = os.getpid()
 signal.signal(signal.SIGINT, handleInterrupt)
 
-stopped = False
+stop = False
 
 if len(sys.argv) != 2:
     print("Usage: %s <config json>" % sys.argv[0])
 
 if len(sys.argv) != 2:
     print("Usage: %s <config json>" % sys.argv[0])
@@ -61,18 +61,20 @@ if len(sys.argv) != 2:
 with open(sys.argv[1]) as configFile:
     config = json.load(configFile)
 
 with open(sys.argv[1]) as configFile:
     config = json.load(configFile)
 
-while not stopped:
+fifo_dir = os.getenv('MTXBOT_FIFO_DIR', '/run/mtxbot')
+
+while not stop:
     presences = []
     presences = []
-    for entry in os.listdir(config['paths']['fifodir']):
-        if stat.S_ISFIFO(os.stat(entry).st_mode):
+    for entry in os.listdir(fifo_dir):
+        fullpath = "%s/%s" % (fifo_dir, entry)
+        if stat.S_ISFIFO(os.stat(fullpath).st_mode):
             logging.info("Creating presence for %s..." % entry)
             logging.info("Creating presence for %s..." % entry)
-            presences.append( Presence( entry, "%s/%s" %
-                                        (config['paths']['fifodir'], entry) ) )
+            presences.append( Presence(entry, fullpath) )
     if len(presences) == 0:
         logging.error("No fifos could be found!")
         break
     asyncio.run(main())
     if len(presences) == 0:
         logging.error("No fifos could be found!")
         break
     asyncio.run(main())
-    if not stopped:
+    if not stop:
         logging.warning("Main loop exited!")
         logging.info("Restarting after grace period...")
         time.sleep(3.0)
         logging.warning("Main loop exited!")
         logging.info("Restarting after grace period...")
         time.sleep(3.0)