diff options
Diffstat (limited to 'src/poezio.py')
-rw-r--r-- | src/poezio.py | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/src/poezio.py b/src/poezio.py deleted file mode 100644 index 9fb6fb73..00000000 --- a/src/poezio.py +++ /dev/null @@ -1,115 +0,0 @@ -# Copyright 2010-2011 Florent Le Coz <louiz@louiz.org> -# -# 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 test_curses(): - """ - Check if the system ncurses linked with python has unicode capabilities. - """ - import curses - if hasattr(curses, 'unget_wch'): - return True - print("""\ -ERROR: The current python executable is linked with a ncurses version that \ -has no unicode capabilities. - -This could mean that: - - python was built on a system where readline is linked against \ -libncurses and not libncursesw - - python was built without ncursesw headers available - -Please file a bug for your distribution or fix that on your system and then \ -recompile python. -Poezio is currently unable to read your input or draw its interface properly,\ - so it will now exit.""") - return False - - -def main(): - """ - Enter point - """ - sys.stdout.write("\x1b]0;poezio\x07") - sys.stdout.flush() - 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.check_create_cache_dir() - config.setup_logging() - config.post_logging_setup() - - from config import options - - if options.check_config: - config.check_config() - sys.exit(0) - - import theming - theming.update_themes_dir() - - 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) - if options.debug: - cocore.debug = True - cocore.start() - - from slixmpp.exceptions import IqError, IqTimeout - def swallow_iqerrors(loop, context): - """Do not log unhandled iq errors and timeouts""" - if not isinstance(context['exception'], (IqError, IqTimeout)): - loop.default_exception_handler(context) - - # Warning: asyncio must always be imported after the config. Otherwise - # the asyncio logger will not follow our configuration and won't write - # the tracebacks in the correct file, etc - import asyncio - loop = asyncio.get_event_loop() - loop.set_exception_handler(swallow_iqerrors) - - loop.add_reader(sys.stdin, cocore.on_input_readable) - loop.add_signal_handler(signal.SIGWINCH, cocore.sigwinch_handler) - cocore.xmpp.start() - loop.run_forever() - # We reach this point only when loop.stop() is called - try: - cocore.reset_curses() - except: - pass - -if __name__ == '__main__': - if test_curses(): - main() - else: - sys.exit(1) |