Details
-
New Feature
-
Status: Closed
-
Major
-
Resolution: Won't Fix
-
None
-
None
-
None
-
Regular Contributors Level (Easy to Medium)
Description
If you want to add external modules in CouchDB and load them , you need to set the ERL_FLAGS environnement variable to the path of a module.
The attached patch allows couchdb to load plugins from plugin key in couchdb section. It add needed path to the code path, so the vm can find modules.
ex:
[couchdb]
plugins = plugin1, plugin2
Each plugin can have its own section where it set the binaries patch, eventually if a service need to be added to the supervision you can set the module and function to load like in daemon section and tel if it's a supervisor or simple service.
It also allows couchdb to load a plugin service (gen_server or such) to the supervision. You can choose if the service is a simple daemon or a supervisor.
ex:
[plugin1]
code_path = /path/to/plugin1/ebin
daemon =
supervisor = false
Let me know what you think about it. This patch is really useful here and allows me to dynamically load modules I want. Also it eases the integration of external module. For ex I can load my couchapp_ng modules with this lines in local.ini :
[couchdb]
plugins = couchapp-ng
[couchapp-ng]
code_path=/Users/benoitc/work/couchapp_ng/ebin
daemon =
[httpd_design_handlers]
_app =
[couchapp_ng_handlers]
rewrite =
proxy =
{couchapp_ng_handlers, proxy_handler}and can do the same with geocouch etc. Tested here with these modules.