summaryrefslogtreecommitdiff
path: root/src/script/lua_api/l_util.cpp
diff options
context:
space:
mode:
authorShadowNinja <shadowninja@minetest.net>2014-09-09 15:17:01 -0400
committerShadowNinja <shadowninja@minetest.net>2015-05-16 18:32:37 -0400
commit05ab9973f9029676dfa252617c8cb698ab13eb24 (patch)
tree38737835d842be0f7df15cd13389800683c935b1 /src/script/lua_api/l_util.cpp
parent3a8c7888807e4483bbdb3edd81c9893f3e2f427d (diff)
downloadminetest-05ab9973f9029676dfa252617c8cb698ab13eb24.tar.gz
minetest-05ab9973f9029676dfa252617c8cb698ab13eb24.tar.bz2
minetest-05ab9973f9029676dfa252617c8cb698ab13eb24.zip
Add core.mkdir
Diffstat (limited to 'src/script/lua_api/l_util.cpp')
-rw-r--r--src/script/lua_api/l_util.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/script/lua_api/l_util.cpp b/src/script/lua_api/l_util.cpp
index 151d449d5..e16b6feab 100644
--- a/src/script/lua_api/l_util.cpp
+++ b/src/script/lua_api/l_util.cpp
@@ -24,6 +24,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "cpp_api/s_async.h"
#include "serialization.h"
#include "json/json.h"
+#include "cpp_api/s_security.h"
#include "debug.h"
#include "porting.h"
#include "log.h"
@@ -327,6 +328,17 @@ int ModApiUtil::l_decompress(lua_State *L)
return 1;
}
+// mkdir(path)
+int ModApiUtil::l_mkdir(lua_State *L)
+{
+ NO_MAP_LOCK_REQUIRED;
+ const char *path = luaL_checkstring(L, 1);
+ CHECK_SECURE_PATH_OPTIONAL(L, path);
+ lua_pushboolean(L, fs::CreateAllDirs(path));
+ return 1;
+}
+
+
void ModApiUtil::Initialize(lua_State *L, int top)
{
API_FCT(debug);
@@ -352,6 +364,8 @@ void ModApiUtil::Initialize(lua_State *L, int top)
API_FCT(compress);
API_FCT(decompress);
+
+ API_FCT(mkdir);
}
void ModApiUtil::InitializeAsync(AsyncEngine& engine)
@@ -374,5 +388,7 @@ void ModApiUtil::InitializeAsync(AsyncEngine& engine)
ASYNC_API_FCT(compress);
ASYNC_API_FCT(decompress);
+
+ ASYNC_API_FCT(mkdir);
}