# 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__))) import singleton def main(): """ Enter point """ import config config_path = config.check_create_config_dir() config.run_cmdline_args(config_path) config.create_global_config() config.check_create_log_dir() config.setup_logging() config.post_logging_setup() from config import options import logger logger.create_logger() import roster roster.create_roster() import core log = logging.getLogger('') signal.signal(signal.SIGINT, signal.SIG_IGN) # ignore ctrl-c 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) signal.signal(signal.SIGPIPE, 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: log.error('------------------------ new poezio start ------------------------') cocore.main_loop() # Refresh the screen, wait for user events etc if __name__ == '__main__': main()