EngineType handling improved and JSON array support

This commit is contained in:
Syping 2021-03-06 03:35:12 +01:00
parent 406905b359
commit 1fd16e168c
11 changed files with 102 additions and 56 deletions

View file

@ -37,7 +37,7 @@ int main(int argc, char *argv[])
QVariant scriptPath = arguments.first();
QFile luaScript(scriptPath.toString());
if (!luaScript.open(QIODevice::ReadOnly)) {
QTextStream(stderr) << "Error: Failed to open \"" << arguments.first().toString() << "\"." << endl;
QTextStream(stderr) << "Error: Failed to open \"" << arguments.first().toString() << "\"." << Qt::endl;
return 1;
}
@ -48,22 +48,29 @@ int main(int argc, char *argv[])
luaScript.reset();
}
LuaEngine luaEngine;
LuaEngine luaEngine(LuaEngine::RuntimeEngineType);
LuaEngineIO::pushClass(&luaEngine);
LuaEngineNetwork::pushClass(&luaEngine);
LuaEngineOS::pushClass(&luaEngine);
luaEngine.pushVariant("_LuaEngineRT", rtPath);
luaEngine.pushVariant("_LuaEngineMode", "CLI");
luaEngine.setProperty("EngineType", "Runtime");
luaEngine.setProperty("ScriptPath", scriptPath);
luaEngine.executeLuaScript(luaScript.readAll());
if (luaEngine.executeLuaFunction("main", arguments, true)) {
QVariant variant = luaEngine.returnVariant();
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
if (variant.typeId() == QMetaType::Int || variant.typeId() == QMetaType::LongLong) {
#else
if (variant.type() == QVariant::Int || variant.type() == QVariant::LongLong) {
#endif
return variant.toInt();
}
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
else if (variant.typeId() == QMetaType::QString) {
#else
else if (variant.type() == QVariant::String) {
#endif
if (variant.toString() == "CliExecuted") {
return a.exec();
}