require("rsmdict")

--The Objects that is supported by the Script
local obj_ids = {
                   RSM.RSM_TagID.TAG_METALIST,                 
                }

function command_exec(cmd)
  local f = io.popen(cmd) 
  value = f:read("*a") or "none"
  f:close()
  return value
end


function log(msg)
    command_exec("logger -t meta_config "..msg)
end

--Return the Object List
function getObjects()
    return obj_ids;
end


function getModuleName(msg)
  if msg == null then
    return null
  end

  for idx,obj in pairs(msg) do
    if obj.objid and obj.objid == RSM.RSM_TagID.TAG_METALIST then
      if obj[RSM.RSM_TagID.TAG_METALIST_NAME] then
        return obj[RSM.RSM_TagID.TAG_METALIST_NAME]
      end
    end
  end
  
  return null
end

function getModule(msg)
  local name = getModuleName(msg)
  if name == null then
    return null
  end
  
  if name == "coollogic" then
    return require("coollogic")
  end
  
  if name == "web_modules" then
    return require("web_modules")
  end
  
  return null
end
   
--Convert the config file into an object message and return that.
function getConfig(msg)
  --log("getConfig")
  local module = getModule(msg)
  if module then
    return module.getConfig()
  end
end


function setConfig(msg)
  --log("setConfig")
  local module = getModule(msg)
  if module then
    return module.setConfig(msg)
  end
end
