poezio.py 1.36 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
15
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
16
import signal
17
import logging
18
from logger import logger
19

louiz’'s avatar
pylint  
louiz’ committed
20
from config import options
louiz’'s avatar
louiz’ committed
21 22
import singleton
import core
23

louiz’'s avatar
pylint  
louiz’ committed
24 25 26 27
def main():
    """
    Enter point
    """
28 29
    signal.signal(signal.SIGINT, signal.SIG_IGN) # ignore ctrl-c
    if options.debug:
louiz’'s avatar
pylint  
louiz’ committed
30
        logging.basicConfig(filename=options.debug, level=logging.DEBUG)
31 32
    else:
        logging.basicConfig(level=logging.CRITICAL)
louiz’'s avatar
pylint  
louiz’ committed
33
    cocore = singleton.Singleton(core.Core)
34
    signal.signal(signal.SIGHUP, cocore.sighup_handler) # ignore ctrl-c
louiz’'s avatar
pylint  
louiz’ committed
35
    cocore.start()
36 37 38 39 40 41 42 43 44 45
    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
46 47 48

if __name__ == '__main__':
    main()