summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DOCS/man/lua.rst4
-rw-r--r--player/lua.c14
2 files changed, 18 insertions, 0 deletions
diff --git a/DOCS/man/lua.rst b/DOCS/man/lua.rst
index 1b0f77cead..63aaca4dbd 100644
--- a/DOCS/man/lua.rst
+++ b/DOCS/man/lua.rst
@@ -486,6 +486,10 @@ This built-in module provides generic helper functions for Lua, and have
strictly speaking nothing to do with mpv or video/audio playback. They are
provided for convenience. Most compensate for Lua's scarce standard library.
+``utils.getcwd()``
+ Returns the directory that mpv was launched from. On error, ``nil, error``
+ is returned.
+
``utils.readdir(path [, filter])``
Enumerate all entries at the given path on the filesystem, and return them
as array. Each entry is a directory entry (without the path).
diff --git a/player/lua.c b/player/lua.c
index dbf0756648..ddcd8acc50 100644
--- a/player/lua.c
+++ b/player/lua.c
@@ -1005,6 +1005,19 @@ static int script_get_wakeup_pipe(lua_State *L)
return 1;
}
+static int script_getcwd(lua_State *L)
+{
+ char *cwd = mp_getcwd(NULL);
+ if (!cwd) {
+ lua_pushnil(L);
+ lua_pushstring(L, "error");
+ return 2;
+ }
+ lua_pushstring(L, cwd);
+ talloc_free(cwd);
+ return 1;
+}
+
static int script_readdir(lua_State *L)
{
// 0 1 2 3
@@ -1104,6 +1117,7 @@ static const struct fn_entry main_fns[] = {
};
static const struct fn_entry utils_fns[] = {
+ FN_ENTRY(getcwd),
FN_ENTRY(readdir),
FN_ENTRY(split_path),
FN_ENTRY(join_path),