def plugins(self, folder, args): t = Terminal() enabled_plugins = folder.load_plugins() available_plugins = utils.get_installed_plugins() if args.enable: if args.set_global: utils.set_global_config_value( 'plugins', args.enable, 'enabled', ) else: folder.set_config_value( 'plugins', args.enable, 'enabled' ) elif args.disable: if args.set_global: utils.set_global_config_value( 'plugins', args.disable, 'disabled', ) else: folder.set_config_value( 'plugins', args.disable, 'disabled' ) else: all_plugins = self.build_plugin_dict( enabled_plugins, available_plugins ) for plugin_name, plugin_data in all_plugins.items(): if plugin_data['enabled'] and args.disabled_only: continue if not plugin_data['enabled'] and args.enabled_only: continue if plugin_data['enabled']: color = t.bold else: color = t.normal print( color + plugin_name + t.normal + ( ' (Enabled)' if plugin_data['enabled'] else ( ' (Disabled; enable by running `jirafs ' 'plugins --enable=%s`)' % plugin_name ) ) ) if args.verbose: doc_string = ( plugin_data['class'].__doc__.strip().split('\n') ) for line in doc_string: print(' %s' % line)
def handle(self, args, folder, parser, **kwargs): installed_plugins = utils.get_installed_plugins() if args.disabled_only and args.enabled_only: parser.error( "--disabled-only and --enabled-only are mutually exclusive.") if args.enable and args.enable not in installed_plugins: parser.error("Plugin '%s' is not installed." % args.enable) return self.cmd(folder, args)
def main(self, folder, args): t = Terminal() enabled_plugins = folder.load_plugins() available_plugins = utils.get_installed_plugins() if args.enable: if args.set_global: utils.set_global_config_value( 'plugins', args.enable, 'enabled', ) else: folder.set_config_value('plugins', args.enable, 'enabled') elif args.disable: if args.set_global: utils.set_global_config_value( 'plugins', args.disable, 'disabled', ) else: folder.set_config_value('plugins', args.disable, 'disabled') print( "{t.red}{t.bold}Warning{t.normal}{t.red}: Disabling of macro " "plugins may result in you encountering problems working with " "folders using a macro. If you encounter a problem, consider " "running `jirafs macropatch reset` to clear the " "currently-applied macros on a given ticket.{t.normal}".format( t=t)) else: all_plugins = self.build_plugin_dict(enabled_plugins, available_plugins) for plugin_name, plugin_data in all_plugins.items(): if plugin_data['enabled'] and args.disabled_only: continue if not plugin_data['enabled'] and args.enabled_only: continue if plugin_data['enabled']: color = t.bold else: color = t.normal print(color + plugin_name + t.normal + (' (Enabled)' if plugin_data['enabled'] else (' (Disabled; enable by running `jirafs ' 'plugins --enable=%s`)' % plugin_name))) if args.verbose: doc_string = ( plugin_data['class'].__doc__.strip().split('\n')) for line in doc_string: print(' %s' % line)
def handle(self, args, folder, parser, **kwargs): installed_plugins = utils.get_installed_plugins() if args.disabled_only and args.enabled_only: parser.error( "--disabled-only and --enabled-only are mutually exclusive." ) if args.enable and args.enable not in installed_plugins: parser.error( "Plugin '%s' is not installed." % args.enable ) return self.cmd(folder, args)
def main(self, folder, args): t = Terminal() enabled_plugins = folder.load_plugins() available_plugins = utils.get_installed_plugins() if args.enable: if args.set_global: utils.set_global_config_value( "plugins", args.enable, "enabled", ) else: folder.set_config_value("plugins", args.enable, "enabled") elif args.disable: if args.set_global: utils.set_global_config_value( "plugins", args.disable, "disabled", ) else: folder.set_config_value("plugins", args.disable, "disabled") else: all_plugins = self.build_plugin_dict(enabled_plugins, available_plugins) for entrypoint_name, plugin_data in all_plugins.items(): if plugin_data["enabled"] and args.disabled_only: continue if not plugin_data["enabled"] and args.enabled_only: continue if plugin_data["enabled"]: color = t.bold else: color = t.normal print(color + entrypoint_name + t.normal + (" (Enabled)" if plugin_data["enabled"] else (" (Disabled; enable by running `jirafs " "plugins --enable=%s`)" % entrypoint_name))) if args.verbose: doc_string = plugin_data["class"].__doc__.strip().split( "\n") for line in doc_string: print(" %s" % line)
def plugins(self, folder, args): t = Terminal() enabled_plugins = folder.load_plugins() available_plugins = utils.get_installed_plugins() if args.enable: if args.set_global: utils.set_global_config_value( 'plugins', args.enable, 'enabled', ) else: folder.set_config_value('plugins', args.enable, 'enabled') elif args.disable: if args.set_global: utils.set_global_config_value( 'plugins', args.disable, 'disabled', ) else: folder.set_config_value('plugins', args.disable, 'disabled') else: all_plugins = self.build_plugin_dict(enabled_plugins, available_plugins) for plugin_name, plugin_data in all_plugins.items(): if plugin_data['enabled'] and args.disabled_only: continue if not plugin_data['enabled'] and args.enabled_only: continue if plugin_data['enabled']: color = t.bold else: color = t.normal print(color + plugin_name + t.normal + (' (Enabled)' if plugin_data['enabled'] else (' (Disabled; enable by running `jirafs ' 'plugins --enable=%s`)' % plugin_name))) if args.verbose: doc_string = ( plugin_data['class'].__doc__.strip().split('\n')) for line in doc_string: print(' %s' % line)
def get_macro_plugins(self): if not hasattr(self, '_macro_plugins'): config = self.folder.get_config() plugins = [] if not config.has_section(constants.CONFIG_PLUGINS): return plugins installed_plugins = utils.get_installed_plugins(MacroPlugin) for name, status in config.items(constants.CONFIG_PLUGINS): if not utils.convert_to_boolean(status): # This plugin is not turned on. continue if name not in installed_plugins: # This plugin is not installed. self.folder.log( "Macro plugin '%s' is not available; " "this is probably because this plugin is not a " "macro.", (name, ), level=logging.DEBUG ) continue plugin = installed_plugins[name](self.folder, name) try: plugin.validate() except PluginValidationError as e: self.folder.log( "Plugin '%s' did not pass validation; " "not loading: %s.", (name, e,), ) plugins.append(plugin) self._macro_plugins = plugins return self._macro_plugins
def main(self, folder, args): t = Terminal() enabled_plugins = folder.load_plugins() available_plugins = utils.get_installed_plugins() if args.enable: if args.set_global: utils.set_global_config_value( 'plugins', args.enable, 'enabled', ) else: folder.set_config_value( 'plugins', args.enable, 'enabled' ) elif args.disable: if args.set_global: utils.set_global_config_value( 'plugins', args.disable, 'disabled', ) else: folder.set_config_value( 'plugins', args.disable, 'disabled' ) print( "{t.red}{t.bold}Warning{t.normal}{t.red}: Disabling of macro " "plugins may result in you encountering problems working with " "folders using a macro. If you encounter a problem, consider " "running `jirafs macropatch reset` to clear the " "currently-applied macros on a given ticket.{t.normal}".format( t=t ) ) else: all_plugins = self.build_plugin_dict( enabled_plugins, available_plugins ) for plugin_name, plugin_data in all_plugins.items(): if plugin_data['enabled'] and args.disabled_only: continue if not plugin_data['enabled'] and args.enabled_only: continue if plugin_data['enabled']: color = t.bold else: color = t.normal print( color + plugin_name + t.normal + ( ' (Enabled)' if plugin_data['enabled'] else ( ' (Disabled; enable by running `jirafs ' 'plugins --enable=%s`)' % plugin_name ) ) ) if args.verbose: doc_string = ( plugin_data['class'].__doc__.strip().split('\n') ) for line in doc_string: print(' %s' % line)