+++ /dev/null
---- a/src/lua.c 2017-04-19 19:29:57.000000000 +0200
-+++ b/src/lua.c 2020-02-12 19:38:09.704428160 +0100
-@@ -6,6 +6,8 @@
-
- #define lua_c
-
-+#include <uk/plat/memory.h>
-+
- #include "lprefix.h"
-
-
-@@ -555,6 +557,9 @@
- int argc = (int)lua_tointeger(L, 1);
- char **argv = (char **)lua_touserdata(L, 2);
- int script;
-+ struct ukplat_memregion_desc img;
-+ char *cstr;
-+
- int args = collectargs(argv, &script);
- luaL_checkversion(L); /* check that interpreter has correct version */
- if (argv[0] && argv[0][0]) progname = argv[0];
-@@ -576,24 +581,23 @@
- }
- if (!runargs(L, argv, script)) /* execute arguments -e and -l */
- return 0; /* something failed */
-- if (script < argc && /* execute main script (if there is one) */
-- handle_script(L, argv + script) != LUA_OK)
-- return 0;
- if (args & has_i) /* -i option? */
- doREPL(L); /* do read-eval-print loop */
-- else if (script == argc && !(args & (has_e | has_v))) { /* no arguments? */
-- if (lua_stdin_is_tty()) { /* running in interactive mode? */
-+ /* see if script is available from initrd */
-+ else if (ukplat_memregion_find_initrd0(&img) >= 0) {
-+ cstr = (char *)img.base;
-+ dostring(L, cstr, "initrd");
-+ }
-+ else {
- print_version();
- doREPL(L); /* do read-eval-print loop */
-- }
-- else dofile(L, NULL); /* executes stdin as a file */
- }
- lua_pushboolean(L, 1); /* signal no errors */
- return 1;
- }
-
-
--int main (int argc, char **argv) {
-+int lua_main (int argc, char **argv) {
- int status, result;
- lua_State *L = luaL_newstate(); /* create state */
- if (L == NULL) {