From 2f1e73741da625c173156102457d5442b27cd953 Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Sun, 20 Apr 2025 19:20:33 +0530 Subject: Add configuration directory loading + --config-dir cli arg --- src/LuaRuntime.cpp | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) (limited to 'src/LuaRuntime.cpp') diff --git a/src/LuaRuntime.cpp b/src/LuaRuntime.cpp index cb5a69a..b4c39a2 100644 --- a/src/LuaRuntime.cpp +++ b/src/LuaRuntime.cpp @@ -15,7 +15,7 @@ LuaRuntime::LuaRuntime() { state = luaL_newstate(); luaL_openlibs(state); - init_lua_package_path(); + init_builtins_package_path(); init_web_api(); } @@ -57,16 +57,9 @@ void LuaRuntime::init_web_api() { }); } -void LuaRuntime::init_lua_package_path() { - auto lua_path = QString(PROJECT_LUA_PATH); - preserve_top(state, { - lua_getglobal(state, "package"); - lua_getfield(state, -1, "path"); - auto pkg_path = QString(lua_tostring(state, -1)) + ";" + lua_path; - lua_pop(state, 1); - lua_pushstring(state, pkg_path.toStdString().c_str()); - lua_setfield(state, -2, "path"); - }); +void LuaRuntime::init_builtins_package_path() { + auto builtins_lua_path = QString(PROJECT_LUA_PATH); + append_package_path(builtins_lua_path); } void LuaRuntime::evaluate(const QString &code) { @@ -84,6 +77,17 @@ void LuaRuntime::evaluate(const QString &code) { }); } +void LuaRuntime::append_package_path(const QString &path) { + preserve_top(state, { + lua_getglobal(state, "package"); + lua_getfield(state, -1, "path"); + auto pkg_path = QString(lua_tostring(state, -1)) + ";" + path; + lua_pop(state, 1); + lua_pushstring(state, pkg_path.toStdString().c_str()); + lua_setfield(state, -2, "path"); + }); +} + void LuaRuntime::load_file_sync(const QString &path) { preserve_top(state, { if (luaL_dofile(state, path.toStdString().c_str()) != LUA_OK) { -- cgit v1.3.1