rpmte.c rpmte_internal.h rpmts.c \
rpmvercmp.c signature.c signature.h transaction.c \
verify.c rpmlock.c rpmlock.h misc.h \
- legacy.c merge.c
+ legacy.c merge.c \
+ rpmliblua.c rpmliblua.h
if SQLITE3
librpm_la_SOURCES += backend/sqlite.c
endif
--- /dev/null
+#include "system.h"
+
+#ifdef WITH_LUA
+#include <lua.h>
+#include <lauxlib.h>
+#include <rpm/rpmlib.h>
+
+#define _RPMLUA_INTERNAL
+#include "rpmio/rpmlua.h"
+#include "lib/rpmliblua.h"
+
+static int rpm_vercmp(lua_State *L)
+{
+ const char *v1, *v2;
+ int rc;
+
+ v1 = luaL_checkstring(L, 1);
+ v2 = luaL_checkstring(L, 2);
+
+ rc = rpmvercmp(v1, v2);
+ lua_pushinteger(L, rc);
+ return 1;
+}
+
+static const luaL_reg luarpmlib_f[] = {
+ {"vercmp", rpm_vercmp},
+ {NULL, NULL}
+};
+
+void rpmLuaInit(void)
+{
+ rpmlua lua = rpmluaGetGlobalState();
+ lua_pushvalue(lua->L, LUA_GLOBALSINDEX);
+ luaL_register(lua->L, "rpm", luarpmlib_f);
+ return;
+}
+
+#endif /* WITH_LUA */
#include "rpmio/rpmlua.h"
#include "rpmio/rpmio_internal.h" /* XXX for rpmioSlurp */
#include "lib/misc.h"
+#include "lib/rpmliblua.h"
#include "debug.h"
os = _free(os);
}
- /* Force Lua state initialization */
#ifdef WITH_LUA
- (void) rpmluaGetGlobalState();
+ /* Force Lua state initialization */
+ rpmLuaInit();
#endif
return 0;