theedge: new plugin system

Auke Kok sofar at lunar-linux.org
Wed Mar 23 20:44:08 UTC 2005


Hi everyone,

Here's a short note on a patch I merged with theedge today. It basically 
comprises a plugin system that will be able to extend parts of the lunar 
code without the need to edit the original core tools. The patch has 
been merged with theedge only at the moment.

The code currently supports plugins for downloading source code over new 
protocols. I have migrated the cvs:// and svn:// handling code to use 
this new plugin system and thus there are no changes to the user or 
module developer.

However, people who wish to see new methods supported can now write a 
frontend plugin and put the plugin in /var/lib/lunar/plugins. The lunar 
code will pickup your pluing automatically and with the plugin_register 
call you can add hooks to your plugin to be called at specific moments. 
Currently there are only two hooks implemented but I intend to look for 
more code that can be moved to plugins to simplify the code base.

Another aspect is that with this plugin system, it becomes possible to 
provide custom modules that install these plugins themselves, thus 
extending your codebase as needed. In the future, the subversion module 
(and also the cvs module) will install the plugin code that allows you 
to download lunar sources using these protocols directly.

In the future, you can think of interesting protocols like torrent://, 
perhaps rsync:// or more exotic protocols being implemented. The plugin 
download code also allows fallback to other URLs automatically, just as 
the old code.

I hope people enjoy the new code and come up with more plugins and other 
parts of the core code that can be modularized.

PS: as usual, theedge is the only place these development patches get 
merged into. the 'lunar' module is safe from them.

sofar



More information about the Lunar mailing list