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.config
18

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

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

25 26
log = logging.getLogger('')

louiz’'s avatar
pylint  
louiz’ committed
27 28 29 30
def main():
    """
    Enter point
    """
31
    signal.signal(signal.SIGINT, signal.SIG_IGN) # ignore ctrl-c
louiz’'s avatar
pylint  
louiz’ committed
32
    cocore = singleton.Singleton(core.Core)
mathieui's avatar
mathieui committed
33 34 35
    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
36
    signal.signal(signal.SIGPIPE, cocore.exit_from_signal)
mathieui's avatar
mathieui committed
37 38
    if options.debug:
        cocore.debug = True
louiz’'s avatar
pylint  
louiz’ committed
39
    cocore.start()
40 41 42 43 44 45 46 47 48
    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:
49
        log.error('------------------------ new poezio start ------------------------')
50
        cocore.main_loop()    # Refresh the screen, wait for user events etc
louiz’'s avatar
pylint  
louiz’ committed
51 52 53

if __name__ == '__main__':
    main()