--[[ Descripttion: version: Author: Neo,Huang Date: 2022-07-04 11:24:54 LastEditors: Neo,Huang LastEditTime: 2022-07-05 09:51:27 --]] local skynet = require "skynet" local sharetable = require "skynet.sharetable" local machine = {} function machine.init() local data = {} local mode = skynet.getenv("mode") data["debug"] = (mode and mode == "debug") local file = skynet.getenv("machine_conf") local f = assert(io.open(file, "rb"), file) for line in f:lines() do if string.find(line, "^(%s*)#") == nil then for k, _, _, v in string.gmatch(line, "([%w_]+)(%s*)=(%s*)([%p%w_.]+)") do data[k] = v end end end local key = string.format("%s_debugport", skynet.getenv("nodeName")) data["debugport"] = skynet.getenv("debugport") or data[key] data["gateport"] = skynet.getenv("gate_listen_port") or data["gate_listen_port"] data["webport"] = skynet.getenv("web_listen_port") or data["web_listen_port"] local weight = skynet.getenv("weight") or data[string.format("%s_weight", skynet.getenv("nodeName"))] data["weight"] = tonumber(weight) f:close() sharetable.loadtable("machine", data) end function machine.get(k) local data = sharetable.query("machine") assert(data) return data[k] or skynet.getenv(k) end return machine