Mercurial > prosody-hg
comparison util/pluginloader.lua @ 3233:8f78e8164032
prosodyctl, util.pluginloader: Remove support for storing plugins in the data store, and the addplugin command
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Fri, 11 Jun 2010 14:25:22 +0100 |
| parents | 692b3c6c5bd2 |
| children | 32b018eeeb3b |
comparison
equal
deleted
inserted
replaced
| 3225:90dc4afe7352 | 3233:8f78e8164032 |
|---|---|
| 13 local loadstring, pairs = loadstring, pairs; | 13 local loadstring, pairs = loadstring, pairs; |
| 14 | 14 |
| 15 local datamanager = require "util.datamanager"; | 15 local datamanager = require "util.datamanager"; |
| 16 | 16 |
| 17 module "pluginloader" | 17 module "pluginloader" |
| 18 | |
| 19 local function load_from_datastore(name) | |
| 20 local content = datamanager.load(name, nil, "plugins"); | |
| 21 if not content or not content[1] then return nil, "Resource not found"; end | |
| 22 return content[1], name; | |
| 23 end | |
| 24 | 18 |
| 25 local function load_file(name) | 19 local function load_file(name) |
| 26 local file, err = io_open(plugin_dir..name); | 20 local file, err = io_open(plugin_dir..name); |
| 27 if not file then return file, err; end | 21 if not file then return file, err; end |
| 28 local content = file:read("*a"); | 22 local content = file:read("*a"); |
| 38 | 32 |
| 39 local content, err = loader(plugin.."/"..resource); | 33 local content, err = loader(plugin.."/"..resource); |
| 40 if not content then content, err = loader(resource); end | 34 if not content then content, err = loader(resource); end |
| 41 -- TODO add support for packed plugins | 35 -- TODO add support for packed plugins |
| 42 | 36 |
| 43 if not content and loader == load_file then | |
| 44 return load_resource(plugin, resource, load_from_datastore); | |
| 45 end | |
| 46 | |
| 47 return content, err; | 37 return content, err; |
| 48 end | |
| 49 | |
| 50 function store_resource(plugin, resource, content, metadata) | |
| 51 if not resource then | |
| 52 resource = "mod_"..plugin..".lua"; | |
| 53 end | |
| 54 local store = { content }; | |
| 55 if metadata then | |
| 56 for k,v in pairs(metadata) do | |
| 57 store[k] = v; | |
| 58 end | |
| 59 end | |
| 60 datamanager.store(plugin.."/"..resource, nil, "plugins", store); | |
| 61 end | 38 end |
| 62 | 39 |
| 63 function load_code(plugin, resource) | 40 function load_code(plugin, resource) |
| 64 local content, err = load_resource(plugin, resource); | 41 local content, err = load_resource(plugin, resource); |
| 65 if not content then return content, err; end | 42 if not content then return content, err; end |
