> even better if w2p_filepath unambiguously define the plugin_name That would be good, but people will likely distributed plugins with filenames like "myplugin_v0.1.w2p" (like apps currently are). In such a case would it be more sensible to generate "myplugin" or "myplugin_v0.1"?
Richard On Oct 21, 12:23 pm, Beerc <berces.las...@fomi.hu> wrote: > May I suggest an extended, > CRUD style, > plugin_name oriented > interface, in a 'plugin' module? So we can use > > plugin.pack(your_app, w2p_filepath, plugin_name) > to pack the given plugin into a w2p file at w2p_filepath; > even better if w2p_filepath unambiguously define the plugin_name, so > we can use simply: > plugin.pack(your_app, w2p_filepath) > or (best): > plugin.pack(your_app, plugin_name) > > 'C' in CRUD: > plugin.create(your_app, w2p_filepath) > to install (==unpack, ==create) the given plugin; > or (better): > plugin.create(your_app, plugin_name) > > 'R' in CRUD: > plugin.retrieve(your_app, w2p_filepath) > to query (in a dictionary) infos about the given plugin; > or (better): > plugin.retrieve(your_app, plugin_name) > and > plugin.retrieve_all(your_app) > > 'U' in CRUD: > plugin.update(your_app, w2p_filepath) > to install a new version of the given plugin, if exist(plugin) and > exist(new_version_of_plugin); > or (better): > plugin.update(your_app, plugin_name) > and > plugin.update_all(your_app) > to update all plugins; > > 'D' in CRUD: > plugin.delete(your_app, w2p_filepath) > to remove the given plugin; > or (better): > plugin.delete(your_app, plugin_name) > and > plugin.delete_all(your_app) > to delete all plugins. > > Some upper/admin level functions: > > plugin.list_all(your_app) > to query the list of names of all plugins installed; > > plugin.dependency_check(your_app, plugin_name) > to check (known) dependencies of given plugin and return infos in a > dictionary; > even if plugin not installed yet (so we can programmatically check > preconditions of that installation) > > plugin.dependency_check_all(your_app) > to check all (known) dependencies and return infos in a dictionary. > > Finally a > CRUD style, > plugin_name oriented > interface for a plugin repository, without short descriptions: > > plugin.repository_create(repository, plugin_name) > to create given plugin in that repo; > plugin.repository_retrieve(repository, plugin_name) > to query (in a dictionary) infos about the given plugin; > plugin.repository_retrieve_all(repository) > to query (in a dictionary) infos about the given plugin; > plugin.repository_list(repository) > to query the list of names of all plugins in that repo; > plugin.repository_update(repository, plugin_name) > to update given plugin; > plugin.repository_delete(repository, plugin_name) > to delete given plugin; > plugin.repository_delete_all(repository) > to delete all plugins. > > Repositories can be > local (given by w2p_filepath), > or > global (given by URI and authentication dataset). --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py-users" group. To post to this group, send email to web2py@googlegroups.com To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---