webmcp

annotate framework/env/execute/load_chunk.lua @ 32:e31af860e97c

add id/params support
author Daniel Poelzleithner <poelzi@poelzi.org>
date Tue Oct 05 04:26:48 2010 +0200 (2010-10-05)
parents 1cd9e69b85cb
children 209a686464a1
rev   line source
poelzi@31 1 --[[--
poelzi@31 2 status_code = -- executes and returns a lua file
poelzi@31 3 execute.load_chunk{
poelzi@31 4 file_path = file_path, -- path to a lua source or byte-code file
poelzi@31 5 app = app, -- app name to use or the current will be used
poelzi@31 6 module = module, -- module where chunk is located
poelzi@31 7 chunk = chunk -- filename of lua file to load
poelzi@32 8 id = id, -- id to be returned by param.get_id(...) during execution
poelzi@32 9 params = params -- parameters to be returned by param.get(...) during execution
poelzi@31 10 }
poelzi@31 11
poelzi@31 12 This function loads and executes a lua file specified by a given path or constructs
poelzi@31 13 a path to load from the module and chunk name.
poelzi@31 14
poelzi@31 15 --]]--
poelzi@31 16
poelzi@31 17 function execute.load_chunk(args)
poelzi@31 18 local file_path = args.file_path
poelzi@31 19 local app = args.app
poelzi@31 20 local module = args.module
poelzi@31 21 local chunk = args.chunk
poelzi@32 22 local id = args.id
poelzi@32 23 local params = args.params
poelzi@31 24
poelzi@31 25 app = app or request.get_app_name()
poelzi@31 26
poelzi@31 27 file_path = file_path or encode.file_path(request.get_app_basepath(),
poelzi@31 28 'app', app, module, chunk)
poelzi@31 29
poelzi@32 30
poelzi@31 31 local func, load_errmsg = loadfile(file_path)
poelzi@31 32 if not func then
poelzi@31 33 error('Could not load file "' .. file_path .. '": ' .. load_errmsg)
poelzi@31 34 end
poelzi@32 35
poelzi@32 36 if id or params then
poelzi@32 37 param.exchange(id, params)
poelzi@32 38 end
poelzi@32 39
poelzi@31 40 local result = func()
poelzi@32 41
poelzi@32 42 if id or params then
poelzi@32 43 param.restore()
poelzi@32 44 end
poelzi@32 45
poelzi@31 46 return result
poelzi@31 47 end

Impressum / About Us