Exemple #1
0
def on_load(io, commands, settings):
    for name, path in settings.items('pyrite.addons'):
        module = pyrite.dyn_import(name, io, True, None)
        if not module:
            continue
        _extensions[name] = module
        if hasattr(module, 'on_load'):
            if module.on_load(commands):
                _extensions[name] = module
        else:
            _extensions[name] = module
Exemple #2
0
def run():
    show_trace = False
    dummy_out = None
    io = IO()
    try:
        if len(sys.argv) < 2:
            raise HelpError()
        cmd = sys.argv[1]
        cmd_info = get_command_info(cmd)
        if not cmd_info:
            raise HelpError(cmd)

        m = pyrite.dyn_import(cmd_info[0], io)
        options = OptionParser(cmd, m, global_options)
        options.parse(sys.argv[2:])
        flags = options.get_flags()
        args = options.get_args()
        module = pyrite.modules[cmd_info[0]]

        if 'help' in flags:
            raise HelpError(cmd)
        if 'debug-subcommands' in flags:
            os.environ['PYTDBG'] = '1'
        if 'debug-exceptions' in flags:
            show_trace = True
        if 'debug-suppress-output' in flags:
            dummy_out = open('/dev/null', 'w')
            io.stdout = dummy_out
        if 'debug-profile' in flags:
            import cProfile
            import pstats
            cProfile.runctx('exec_command(module, cmd, args, flags, '
                            'io)',
                            globals(), locals(), 'pyt-profile')
            p = pstats.Stats('pyt-profile')
            p.sort_stats(flags.get('debug-profile-sort', 'cumulative'))
            p.print_title()
            p.print_stats()
            if 'debug-profile-extra' in flags:
                p.print_callers()
        else:
            exec_command(module, cmd, args, flags, io)

    except HelpError, inst:
        on_help_error(inst, io)
        if show_trace:
            raise