mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-24 12:20:41 +00:00
sharedata support filename string
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
local skynet = require "skynet"
|
||||
local sharedata = require "sharedata.corelib"
|
||||
local table = table
|
||||
local cache = require "skynet.codecache"
|
||||
cache.mode "OFF" -- turn off codecache, because CMD.new may load data file
|
||||
|
||||
local NORET = {}
|
||||
local pool = {}
|
||||
@@ -43,9 +45,17 @@ function CMD.new(name, t)
|
||||
value = t
|
||||
elseif dt == "string" then
|
||||
value = setmetatable({}, env_mt)
|
||||
local f = load(t, "=" .. name, "t", value)
|
||||
assert(skynet.pcall(f))
|
||||
local f
|
||||
if t:sub(1,1) == "@" then
|
||||
f = assert(loadfile(t:sub(2),"bt",value))
|
||||
else
|
||||
f = assert(load(t, "=" .. name, "bt", value))
|
||||
end
|
||||
local _, ret = assert(skynet.pcall(f))
|
||||
setmetatable(value, nil)
|
||||
if type(ret) == "table" then
|
||||
value = ret
|
||||
end
|
||||
elseif dt == "nil" then
|
||||
value = {}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user