diff options
| author | ruki <[email protected]> | 2016-02-01 11:36:44 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2016-02-15 19:10:26 +0800 |
| commit | 4d9ea35a4cc8e4a2ac0d7e2633f088ca0be7e7f1 (patch) | |
| tree | d9e03245368fce5bdf56fce6ef2a272c95a95913 /xmake/core/base/sandbox.lua | |
| parent | def096cfe9e22d363dffa29cd02c134778e62966 (diff) | |
load builtin modules for sandbox
Diffstat (limited to 'xmake/core/base/sandbox.lua')
| -rw-r--r-- | xmake/core/base/sandbox.lua | 38 |
1 files changed, 27 insertions, 11 deletions
diff --git a/xmake/core/base/sandbox.lua b/xmake/core/base/sandbox.lua index 2689c9dc5..37c9edab7 100644 --- a/xmake/core/base/sandbox.lua +++ b/xmake/core/base/sandbox.lua @@ -76,7 +76,7 @@ end function sandbox._api_builtin_import(self, module) -- import - return require("modules/" .. module) + return require("sandbox/" .. module) end -- register api @@ -113,18 +113,34 @@ function sandbox._init() end end - -- register the builtin interfaces - self:_api_register("import", sandbox._api_builtin_import) + -- load builtin module files + local builtin_module_files = os.match(path.join(xmake._CORE_DIR, "sandbox/builtin/*.lua")) + if builtin_module_files then + for _, builtin_module_file in ipairs(builtin_module_files) do + + -- the module name + local module_name = path.basename(builtin_module_file) + assert(module_name) + + -- load script + local script = loadfile(builtin_module_file) + if script then + + -- load module + local ok, results = xpcall(script, debug.traceback) + if not ok then + utils.error(results) + utils.abort() + end - -- register the builtin interfaces for lua - self:_api_register_builtin("print", print) - self:_api_register_builtin("pairs", pairs) - self:_api_register_builtin("ipairs", ipairs) + -- register module + self:_api_register_builtin(module_name, results) + end + end + end - -- register the builtin modules for lua - self:_api_register_builtin("path", path) - self:_api_register_builtin("table", table) - self:_api_register_builtin("string", string) + -- register import() for importing the extensional sandbox modules + self:_api_register("import", sandbox._api_builtin_import) -- ok? return self |
