aboutsummaryrefslogtreecommitdiff
path: root/src/mmfwd/__main__.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mmfwd/__main__.py')
-rw-r--r--src/mmfwd/__main__.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/mmfwd/__main__.py b/src/mmfwd/__main__.py
new file mode 100644
index 0000000..427e512
--- /dev/null
+++ b/src/mmfwd/__main__.py
@@ -0,0 +1,30 @@
+import signal
+import yaml
+from gi.repository import GLib
+from mmfwd import *
+
+CONFIG_FILENAME = "mmfwd.yaml"
+
+def handle_signal (loop):
+ '''Handle exit signals'''
+ loop.quit()
+
+# load config
+try:
+ from yaml import CLoader as Loader, CDumper as Dumper
+except ImportError:
+ from yaml import Loader, Dumper
+
+conf = yaml.load(open(CONFIG_FILENAME), Loader)["mmfwd"]
+# instantiate the singleton objects
+app = Application(conf)
+main_loop = GLib.MainLoop()
+
+GLib.unix_signal_add(
+ GLib.PRIORITY_HIGH, signal.SIGINT, handle_signal, main_loop)
+GLib.unix_signal_add(
+ GLib.PRIORITY_HIGH, signal.SIGTERM, handle_signal, main_loop)
+
+
+# do the Glib loop
+main_loop.run()