Ejemplo n.º 1
0
 def __init__(self):
     base_config = parse_config(os.path.abspath('config%slsx' % os.path.extsep))
     for config in glob.glob(os.path.abspath(os.path.join(os.path.dirname(lascaux.__file__),
                                                          'config', '*%s*' % os.path.extsep))):
         merge_dict(self, parse_config(config))
     for package in base_config['app_packages']:
         __import__(package)
         try: module = __import__(package)
         except: module = None
         if not module: 
             self['app_packages'].remove(package)
             continue
         package_dir = os.path.abspath(os.path.dirname(module.__file__))
         for config in glob.glob(os.path.join(package_dir, 'config', '*%s*' % os.path.extsep)):
             self.setdefault(package, dict())
             self[package]['package_dir'] = package_dir
             merge_dict(self, parse_config(config))
     merge_dict(self, base_config)
Ejemplo n.º 2
0
 def find_plugins(self, app=None):
     for app_package in config['app_packages']:
         package_dir = config[app_package]['package_dir']
         for plugin in glob.glob(os.path.join(package_dir, 'plugins', '*')):
             if not os.path.isdir(plugin):
                 continue
             plugin_name = os.path.basename(plugin)
             if not plugin_name in config[app_package]['plugins']:
                 continue
             plugin_config = config[app_package]['plugins'][plugin_name]
             plugin_config['package_dir'] = plugin
             plugin_config['routes'] = parse_config(os.path.join(plugin, plugin_config['routing']))
             if app:
                 self.plugins.append(Plugin(app=app.get_root(), 
                                            name=plugin_name,
                                            app_package=app_package,
                                            config=plugin_config))
             else:
                 self.plugins.append(Plugin(name=plugin_name, 
                                            app_package=app_package,
                                            config=plugin_config))
             logger.info("Found plugin `%s` in '%s'" % (plugin_name, plugin))
     return self.plugins