diff options
author | Romain Forlot <romain.forlot@iot.bzh> | 2017-09-20 16:54:14 +0200 |
---|---|---|
committer | Romain Forlot <romain.forlot@iot.bzh> | 2017-12-14 11:00:25 +0100 |
commit | 78202d5bd8a8d09a55bb71b9df6d3f54b18184b8 (patch) | |
tree | afbc89a7c104a70e7771939765309e977a5ab96a /controller/ctl-lua.c | |
parent | b68f95e384aa35b54e453b5e7d09dabf8d82340c (diff) |
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 <romain.forlot@iot.bzh>
Diffstat (limited to 'controller/ctl-lua.c')
-rw-r--r-- | controller/ctl-lua.c | 15 |
1 files changed, 7 insertions, 8 deletions
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: |