flexget.plugins.cli.plugins
Covered: 15 lines
Missed: 16 lines
Skipped 9 lines
Percent: 48 %
 1
import logging
 2
from optparse import SUPPRESS_HELP
 3
from flexget.plugin import register_parser_option, plugins
 4
from flexget.event import event
 6
log = logging.getLogger('plugins')
 9
@event('manager.startup')
10
def plugins_summary(manager):
11
    if manager.options.plugins:
12
        manager.disable_feeds()
13
        print '-' * 79
14
        print '%-20s%-30s%s' % ('Name', 'Roles (priority)', 'Info')
15
        print '-' * 79
18
        for name in sorted(plugins):
19
            plugin = plugins[name]
21
            if plugin.get('debug_plugin', False) and not manager.options.debug:
22
                continue
23
            flags = []
24
            if plugin.instance.__doc__:
25
                flags.append('--doc')
26
            if plugin.builtin:
27
                flags.append('builtin')
28
            if plugin.debug:
29
                flags.append('debug')
30
            handlers = plugin.phase_handlers
31
            roles = ', '.join('%s(%s)' % (phase, handlers[phase].priority) for phase in handlers)
32
            print '%-20s%-30s%s' % (name, roles, ', '.join(flags))
34
        print '-' * 79
36
register_parser_option('--plugins', action='store_true', dest='plugins', default=False,
37
                       help='Print registered plugins summary')
38
register_parser_option('--list', action='store_true', dest='plugins', default=False,
39
                       help=SUPPRESS_HELP)