diff --git a/package/gluon-core/luasrc/usr/lib/lua/gluon/util.lua b/package/gluon-core/luasrc/usr/lib/lua/gluon/util.lua index a3c5456f..f595d194 100644 --- a/package/gluon-core/luasrc/usr/lib/lua/gluon/util.lua +++ b/package/gluon-core/luasrc/usr/lib/lua/gluon/util.lua @@ -3,6 +3,7 @@ local posix_glob = require 'posix.glob' local hash = require 'hash' local sysconfig = require 'gluon.sysconfig' local site = require 'gluon.site' +local json = require 'jsonc' local M = {} @@ -119,6 +120,17 @@ function M.domain_seed_bytes(key, length) return ret:sub(0, 2*length) end +function M.get_domains() + local list = {} + for _, domain_path in ipairs(M.glob('/lib/gluon/domains/*.json')) do + table.insert(list, { + domain_code = domain_path:match('([^/]+)%.json$'), + domain = assert(json.load(domain_path)), + }) + end + return list +end + function M.get_mesh_devices(uconn) local dump = uconn:call("network.interface", "dump", {}) local devices = {}