From 78202d5bd8a8d09a55bb71b9df6d3f54b18184b8 Mon Sep 17 00:00:00 2001 From: Romain Forlot Date: Wed, 20 Sep 2017 16:54:14 +0200 Subject: Make LUA works - Added LUA library at link - Make app-template crash build if a checked file fails - Fix old defined variable CONTROL_LUA_PATH to a default one in the binding data directory - Add an example with unit conversion made in LUA Change-Id: I1b4712bde32a38044ad6b14ebd38b6782fd01fe9 Signed-off-by: Romain Forlot --- controller/ctl-lua.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'controller/ctl-lua.c') diff --git a/controller/ctl-lua.c b/controller/ctl-lua.c index 5d959f0..7e51d2a 100644 --- a/controller/ctl-lua.c +++ b/controller/ctl-lua.c @@ -736,12 +736,13 @@ STATIC void LuaDoAction (LuaDoActionT action, afb_req request) { goto OnErrorExit; } - // search for filename=script in CONTROL_LUA_PATH - if (!luaScriptPathJ) { + // search for filename=script in binding data dir + if (!luaScriptPathJ) { + const char* dirList = strncat(GetBindingDirPath(), "/data", sizeof(GetBindingDirPath()) - strlen(GetBindingDirPath()) - 1); strncpy(luaScriptPath,CONTROL_DOSCRIPT_PRE, sizeof(luaScriptPath)); strncat(luaScriptPath,"-", sizeof(luaScriptPath)); strncat(luaScriptPath,target, sizeof(luaScriptPath)); - luaScriptPathJ= ScanForConfig(CONTROL_LUA_PATH , CTL_SCAN_RECURSIVE,luaScriptPath,".lua"); + luaScriptPathJ= ScanForConfig(dirList, CTL_SCAN_RECURSIVE,luaScriptPath,".lua"); } for (index=0; index < json_object_array_length(luaScriptPathJ); index++) { json_object *entryJ=json_object_array_get_idx(luaScriptPathJ, index); @@ -988,8 +989,6 @@ static const luaL_Reg afbFunction[] = { // Load Lua Interpreter int LuaConfigLoad () { - - // open a new LUA interpretor luaState = luaL_newstate(); if (!luaState) { @@ -1029,8 +1028,8 @@ int LuaConfigExec () { strncat (fullprefix, GetBinderName(), sizeof(fullprefix)); strncat (fullprefix, "-", sizeof(fullprefix)); - const char *dirList= getenv("CONTROL_LUA_PATH"); - if (!dirList) dirList=CONTROL_LUA_PATH; + const char *dirList = getenv("CONTROL_LUA_PATH"); + if (!dirList) dirList = strncat(GetBindingDirPath(), "/data", sizeof(GetBindingDirPath()) - strlen(GetBindingDirPath()) - 1); // special case for no lua even when avaliable if (!strcasecmp ("/dev/null", dirList)) { @@ -1073,7 +1072,7 @@ int LuaConfigExec () { AFB_WARNING ("POLICY-INIT:WARNING (setenv CONTROL_LUA_PATH) No LUA '%s*.lua' in '%s'", fullprefix, dirList); } - AFB_DEBUG ("Audio control-LUA Init Done"); + AFB_DEBUG("Control-LUA Init Done"); return 0; OnErrorExit: -- cgit 1.2.3-korg