poezio.py 1.53 KB
Newer Older
louiz’'s avatar
louiz’ committed
1
# Copyright 2010-2011 Florent Le Coz <louiz@louiz.org>
2 3 4 5
#
# This file is part of Poezio.
#
# Poezio is free software: you can redistribute it and/or modify
6
# it under the terms of the zlib license. See the COPYING file.
louiz’'s avatar
louiz’ committed
7

8

9 10 11
"""
Starting point of poezio. Launches both the Connection and Gui
"""
12

13
import sys
14
import os
mathieui's avatar
mathieui committed
15

16
import signal
17
import logging
18

mathieui's avatar
mathieui committed
19 20 21
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

from logger import logger
louiz’'s avatar
pylint  
louiz’ committed
22
from config import options
louiz’'s avatar
louiz’ committed
23 24
import singleton
import core
25

louiz’'s avatar
pylint  
louiz’ committed
26 27 28 29
def main():
    """
    Enter point
    """
30 31
    signal.signal(signal.SIGINT, signal.SIG_IGN) # ignore ctrl-c
    if options.debug:
louiz’'s avatar
pylint  
louiz’ committed
32
        logging.basicConfig(filename=options.debug, level=logging.DEBUG)
33 34
    else:
        logging.basicConfig(level=logging.CRITICAL)
louiz’'s avatar
pylint  
louiz’ committed
35
    cocore = singleton.Singleton(core.Core)
mathieui's avatar
mathieui committed
36 37 38
    signal.signal(signal.SIGUSR1, cocore.sigusr_handler) # reload the config
    signal.signal(signal.SIGHUP, cocore.exit_from_signal)
    signal.signal(signal.SIGTERM, cocore.exit_from_signal)
mathieui's avatar
mathieui committed
39 40
    if options.debug:
        cocore.debug = True
louiz’'s avatar
pylint  
louiz’ committed
41
    cocore.start()
42 43 44 45 46 47 48 49 50 51
    try:
        if not cocore.xmpp.start():  # Connect to remote server
            cocore.on_failed_connection()
    except:
        cocore.running = False
        cocore.reset_curses()
        print("Poezio could not start, maybe you tried aborting it while it was starting?\n"
                "If you think it is abnormal, please run it with the -d option and report the bug.")
    else:
        cocore.main_loop()    # Refresh the screen, wait for user events etc
louiz’'s avatar
pylint  
louiz’ committed
52 53 54

if __name__ == '__main__':
    main()