summaryrefslogtreecommitdiffstats
path: root/controller/ctl-lua.c
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2017-09-20 16:54:14 +0200
committerRomain Forlot <romain.forlot@iot.bzh>2017-12-14 11:00:25 +0100
commit78202d5bd8a8d09a55bb71b9df6d3f54b18184b8 (patch)
treeafbc89a7c104a70e7771939765309e977a5ab96a /controller/ctl-lua.c
parentb68f95e384aa35b54e453b5e7d09dabf8d82340c (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.c15
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: