Guest User

Untitled

a guest
Jul 17th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.15 KB | None | 0 0
  1. #! /usr/bin/env python
  2.  
  3. import os, re, sys
  4.  
  5. def loadPlugins():
  6. path = os.path.abspath(os.path.dirname(sys.argv[0]) + '/plugins')
  7. print "Path: %s" % path
  8.  
  9. files = os.listdir(path)
  10. print "Files: %s " % files
  11.  
  12. print "Applying re with pattern: _plugin\.py$"
  13. pattern = re.compile("_plugin\.py$", re.IGNORECASE)
  14. files = filter(pattern.search, files)
  15.  
  16. filesToModuleName = lambda f: os.path.splitext(f)[0]
  17. moduleNames = map(filesToModuleName, files)
  18. print "Files to module names: %s" % moduleNames
  19.  
  20. plugins = []
  21. for module in moduleNames:
  22. plugins.append(__import__('plugins.'+module, fromlist=['']))
  23.  
  24. return plugins
  25.  
  26. plugins = loadPlugins()
  27. print "Plugins: %s" % plugins
  28.  
  29. for plugin in plugins:
  30. tmp = plugin.pluginMain()
  31.  
  32. ---
  33.  
  34. Path: /ModuleLoading/plugins
  35. Files: ['__init__.py', '__init__.pyc', 'loader.py', 'loader.pyc', 'SayHello_plugin.py', 'SayHello_plugin.pyc']
  36. Applying re with pattern: _plugin\.py$
  37. Files to module names: ['SayHello_plugin']
  38. Plugins: [<module 'plugins.SayHello_plugin' from '/ModuleLoading/plugins/SayHello_plugin.py'>]
  39. Hello, world!
Add Comment
Please, Sign In to add comment