machine.lua 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. --[[
  2. Descripttion:
  3. version:
  4. Author: Neo,Huang
  5. Date: 2022-07-04 11:24:54
  6. LastEditors: Neo,Huang
  7. LastEditTime: 2022-07-05 09:51:27
  8. --]]
  9. local skynet = require "skynet"
  10. local sharetable = require "skynet.sharetable"
  11. local machine = {}
  12. function machine.init()
  13. local data = {}
  14. local mode = skynet.getenv("mode")
  15. data["debug"] = (mode and mode == "debug")
  16. local file = skynet.getenv("machine_conf")
  17. local f = assert(io.open(file, "rb"), file)
  18. for line in f:lines() do
  19. if string.find(line, "^(%s*)#") == nil then
  20. for k, _, _, v in string.gmatch(line, "([%w_]+)(%s*)=(%s*)([%p%w_.]+)") do
  21. data[k] = v
  22. end
  23. end
  24. end
  25. local key = string.format("%s_debugport", skynet.getenv("nodeName"))
  26. data["debugport"] = skynet.getenv("debugport") or data[key]
  27. data["gateport"] = skynet.getenv("gate_listen_port") or data["gate_listen_port"]
  28. data["webport"] = skynet.getenv("web_listen_port") or data["web_listen_port"]
  29. local weight = skynet.getenv("weight") or data[string.format("%s_weight", skynet.getenv("nodeName"))]
  30. data["weight"] = tonumber(weight)
  31. f:close()
  32. sharetable.loadtable("machine", data)
  33. end
  34. function machine.get(k)
  35. local data = sharetable.query("machine")
  36. assert(data)
  37. return data[k] or skynet.getenv(k)
  38. end
  39. return machine