js: require: directory-scripts: first look at <dir>/modules/

Also, add the function mp.get_script_directory() to let scripts know if
they're loaded as a directory and where.
This commit is contained in:
Avi Halachmi (:avih) committed 2020-02-07 18:22:12 +02:00
1 parent 68a1b47d4d
commit 756960bf3c
4 files changed
+16 -1

No files matched your search

+7
View File
@@ -59,6 +59,7 @@ static const char *const builtin_files[][3] = {
// Represents a loaded script. Each has its own js state.
struct script_ctx {
const char *filename;
const char *path; // NULL if single file
struct mpv_handle *client;
struct MPContext *mpctx;
struct mp_log *log;
@@ -477,6 +478,7 @@ static int s_load_javascript(struct mp_script_args *args)
.log = args->log,
.last_error_str = talloc_strdup(ctx, "Cannot initialize JavaScript"),
.filename = args->filename,
.path = args->path,
};
int r = -1;
@@ -1281,6 +1283,11 @@ static void add_functions(js_State *J, struct script_ctx *ctx)
js_pushstring(J, ctx->filename);
js_setproperty(J, -2, "script_file");
if (ctx->path) {
js_pushstring(J, ctx->path);
js_setproperty(J, -2, "script_path");
}
js_pop(J, 2); // leave the stack as we got it
}