forked from enlightenment/efl
elua: remove path decision from register_require
This commit is contained in:
parent
498501b9d7
commit
c1cfcc35b9
|
@ -111,41 +111,12 @@ elua_register_require(lua_State *L)
|
||||||
const char *modpath = elua_state_mod_dir_get(elua_state);
|
const char *modpath = elua_state_mod_dir_get(elua_state);
|
||||||
const char *appspath = elua_state_apps_dir_get(elua_state);
|
const char *appspath = elua_state_apps_dir_get(elua_state);
|
||||||
Eina_List *largs = lua_touserdata(L, lua_upvalueindex(1)), *l = NULL;
|
Eina_List *largs = lua_touserdata(L, lua_upvalueindex(1)), *l = NULL;
|
||||||
Eina_Bool noenv = lua_toboolean (L, lua_upvalueindex(2));
|
|
||||||
Arg_Data *data = NULL;
|
Arg_Data *data = NULL;
|
||||||
char corepathbuf[PATH_MAX], modpathbuf[PATH_MAX], appspathbuf[PATH_MAX];
|
|
||||||
int n = 3;
|
int n = 3;
|
||||||
lua_pushvalue(L, 1);
|
lua_pushvalue(L, 1);
|
||||||
elua_require_ref = luaL_ref(L, LUA_REGISTRYINDEX);
|
elua_require_ref = luaL_ref(L, LUA_REGISTRYINDEX);
|
||||||
lua_pushvalue(L, 2);
|
lua_pushvalue(L, 2);
|
||||||
elua_appload_ref = luaL_ref(L, LUA_REGISTRYINDEX);
|
elua_appload_ref = luaL_ref(L, LUA_REGISTRYINDEX);
|
||||||
if (!corepath)
|
|
||||||
{
|
|
||||||
if (noenv || !(corepath = getenv("ELUA_CORE_DIR")) || !corepath[0])
|
|
||||||
{
|
|
||||||
corepath = corepathbuf;
|
|
||||||
snprintf(corepathbuf, sizeof(corepathbuf), "%s/core",
|
|
||||||
eina_prefix_data_get(elua_prefix));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!modpath)
|
|
||||||
{
|
|
||||||
if (noenv || !(modpath = getenv("ELUA_MODULES_DIR")) || !modpath[0])
|
|
||||||
{
|
|
||||||
modpath = modpathbuf;
|
|
||||||
snprintf(modpathbuf, sizeof(modpathbuf), "%s/modules",
|
|
||||||
eina_prefix_data_get(elua_prefix));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!appspath)
|
|
||||||
{
|
|
||||||
if (noenv || !(appspath = getenv("ELUA_APPS_DIR")) || !appspath[0])
|
|
||||||
{
|
|
||||||
appspath = appspathbuf;
|
|
||||||
snprintf(appspathbuf, sizeof(appspathbuf), "%s/apps",
|
|
||||||
eina_prefix_data_get(elua_prefix));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
lua_pushfstring(L, "%s/?.lua;", corepath);
|
lua_pushfstring(L, "%s/?.lua;", corepath);
|
||||||
EINA_LIST_FOREACH(largs, l, data)
|
EINA_LIST_FOREACH(largs, l, data)
|
||||||
{
|
{
|
||||||
|
@ -317,10 +288,9 @@ elua_main(lua_State *L)
|
||||||
hasexec = EINA_FALSE;
|
hasexec = EINA_FALSE;
|
||||||
Eina_List *largs = NULL, *l = NULL;
|
Eina_List *largs = NULL, *l = NULL;
|
||||||
Arg_Data *data = NULL;
|
Arg_Data *data = NULL;
|
||||||
const char *coref = NULL;
|
|
||||||
char *coredir = NULL, *moddir = NULL, *appsdir = NULL;
|
char *coredir = NULL, *moddir = NULL, *appsdir = NULL;
|
||||||
|
char coredirbuf[PATH_MAX], moddirbuf[PATH_MAX], appsdirbuf[PATH_MAX];
|
||||||
char modfile[PATH_MAX];
|
char modfile[PATH_MAX];
|
||||||
char corefbuf[PATH_MAX];
|
|
||||||
|
|
||||||
int ch;
|
int ch;
|
||||||
|
|
||||||
|
@ -364,8 +334,6 @@ elua_main(lua_State *L)
|
||||||
|
|
||||||
INF("arguments parsed");
|
INF("arguments parsed");
|
||||||
|
|
||||||
elua_state_dirs_set(es, coredir, moddir, appsdir);
|
|
||||||
|
|
||||||
lua_gc(L, LUA_GCSTOP, 0);
|
lua_gc(L, LUA_GCSTOP, 0);
|
||||||
|
|
||||||
elua_prefix = eina_prefix_new(elua_progname, elua_main, "ELUA", "elua", "checkme",
|
elua_prefix = eina_prefix_new(elua_progname, elua_main, "ELUA", "elua", "checkme",
|
||||||
|
@ -379,29 +347,49 @@ elua_main(lua_State *L)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(coref = coredir))
|
if (!coredir)
|
||||||
{
|
{
|
||||||
if (noenv || !(coref = getenv("ELUA_CORE_DIR")) || !coref[0])
|
if (noenv || !(coredir = getenv("ELUA_CORE_DIR")) || !coredir[0])
|
||||||
{
|
{
|
||||||
coref = corefbuf;
|
coredir = coredirbuf;
|
||||||
snprintf(corefbuf, sizeof(corefbuf), "%s/core",
|
snprintf(coredirbuf, sizeof(coredirbuf), "%s/core",
|
||||||
eina_prefix_data_get(elua_prefix));
|
eina_prefix_data_get(elua_prefix));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
snprintf(modfile, sizeof(modfile), "%s/module.lua", coref);
|
if (!moddir)
|
||||||
|
{
|
||||||
|
if (noenv || !(moddir = getenv("ELUA_MODULES_DIR")) || !moddir[0])
|
||||||
|
{
|
||||||
|
moddir = moddirbuf;
|
||||||
|
snprintf(moddirbuf, sizeof(moddirbuf), "%s/modules",
|
||||||
|
eina_prefix_data_get(elua_prefix));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!appsdir)
|
||||||
|
{
|
||||||
|
if (noenv || !(appsdir = getenv("ELUA_APPS_DIR")) || !appsdir[0])
|
||||||
|
{
|
||||||
|
appsdir = appsdirbuf;
|
||||||
|
snprintf(appsdirbuf, sizeof(appsdirbuf), "%s/apps",
|
||||||
|
eina_prefix_data_get(elua_prefix));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
elua_state_dirs_set(es, coredir, moddir, appsdir);
|
||||||
|
|
||||||
|
snprintf(modfile, sizeof(modfile), "%s/module.lua", coredir);
|
||||||
if (elua_report_error(es, elua_progname, elua_io_loadfile(es, modfile)))
|
if (elua_report_error(es, elua_progname, elua_io_loadfile(es, modfile)))
|
||||||
{
|
{
|
||||||
m->status = 1;
|
m->status = 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
lua_pushlightuserdata(L, largs);
|
lua_pushlightuserdata(L, largs);
|
||||||
lua_pushboolean (L, noenv);
|
lua_pushcclosure(L, elua_register_require, 1);
|
||||||
lua_pushcclosure(L, elua_register_require, 2);
|
|
||||||
lua_createtable(L, 0, 0);
|
lua_createtable(L, 0, 0);
|
||||||
luaL_register(L, NULL, cutillib);
|
luaL_register(L, NULL, cutillib);
|
||||||
lua_call(L, 2, 0);
|
lua_call(L, 2, 0);
|
||||||
|
|
||||||
snprintf(modfile, sizeof(modfile), "%s/gettext.lua", coref);
|
snprintf(modfile, sizeof(modfile), "%s/gettext.lua", coredir);
|
||||||
if (elua_report_error(es, elua_progname, elua_io_loadfile(es, modfile)))
|
if (elua_report_error(es, elua_progname, elua_io_loadfile(es, modfile)))
|
||||||
{
|
{
|
||||||
m->status = 1;
|
m->status = 1;
|
||||||
|
|
Loading…
Reference in New Issue