# Copyright 2010-2011 Florent Le Coz # # This file is part of Poezio. # # Poezio is free software: you can redistribute it and/or modify # it under the terms of the zlib license. See the COPYING file. """ Starting point of poezio. Launches both the Connection and Gui """ import sys import os import signal import logging sys.path.append(os.path.dirname(os.path.abspath(__file__))) from logger import logger from config import options import singleton import core def main(): """ Enter point """ signal.signal(signal.SIGINT, signal.SIG_IGN) # ignore ctrl-c if options.debug: logging.basicConfig(filename=options.debug, level=logging.DEBUG) else: logging.basicConfig(level=logging.CRITICAL) cocore = singleton.Singleton(core.Core) 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) if options.debug: cocore.debug = True cocore.start() 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 if __name__ == '__main__': main()