bool lsp::luabag_init(LUABAG *luabag) { if(!luabag) { return false; } luabag->L=lua_open(); luaL_openlibs(luabag->L); luaopen_lualsp(luabag->L); mod_mgr.open(luabag->L); lua_register(luabag->L, "version",lua_version); lua_register(luabag->L, "module_version", lua_module_version); lua_register(luabag->L, "module_list", lua_module_list); lua_register(luabag->L, "log",lua_log); lua_register(luabag->L, "uuid_gen",lua_uuid_gen); if(!g_conf->init_script.empty()) { if(luaL_loadfile(luabag->L, g_conf->init_script.c_str()) || lua_pcall(luabag->L,0,0,0)) { log(LOG_ERR, "%s", lua_tostring(luabag->L,-1)); lua_pop(luabag->L,1); } } lua_register(luabag->L,"content_type",lua_content_type); lua_register(luabag->L,"set_out_header",lua_set_out_header); lua_register(luabag->L,"get_in_header",lua_get_in_header); return true; }
int main(int argc,char** argv) { if(argc<2) return 0; lua_State* L=lua_open(); luaL_openlibs(L); luaopen_lualsp(L); if(luaL_do_lsp_file(L,argv[1])) { const char* e=lua_tostring(L,-1); printf("%s\n",e); lua_pop(L,1); } lua_close(L); return 0; }