diff --git a/HISTORY.md b/HISTORY.md index 63dcced0..a161f546 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -5,6 +5,7 @@ Dev version * add skynet.response and check multicall skynet.ret * skynet.newservice throw error when lanuch faild * Don't check imported function in snax.hotfix +* snax service add change SERVICE_PATH and add it to package.path v0.5.0 (2014-7-28) ----------- diff --git a/lualib/snax/interface.lua b/lualib/snax/interface.lua index 24d52c08..a2f8aa64 100644 --- a/lualib/snax/interface.lua +++ b/lualib/snax/interface.lua @@ -61,6 +61,8 @@ return function (name , G, loader) setmetatable(G, { __index = env , __newindex = init_system }) + local pattern + do local path = skynet.getenv "snax" @@ -70,6 +72,7 @@ return function (name , G, loader) local filename = string.gsub(pat, "?", name) local f , err = loader(filename, "bt", G) if f then + pattern = pat mainfunc = f break else @@ -90,5 +93,5 @@ return function (name , G, loader) G[k] = v end - return func + return func, pattern end diff --git a/service/snaxd.lua b/service/snaxd.lua index de41d6c3..28caefce 100644 --- a/service/snaxd.lua +++ b/service/snaxd.lua @@ -4,7 +4,14 @@ local snax_interface = require "snax.interface" local profile = require "profile" local snax = require "snax" -local func = snax_interface(tostring(...), _ENV) +local snax_name = tostring(...) +local func, pattern = snax_interface(snax_name, _ENV) +local snax_path = pattern:sub(1,pattern:find("?", 1, true)-1) .. snax_name .. "/" +package.path = snax_path .. "?.lua;" .. package.path + +SERVICE_NAME = snax_name +SERVICE_PATH = snax_path + local mode local thread_id local message_queue = {}