diff options
author | Avi Halachmi (:avih) <avihpit@yahoo.com> | 2019-12-14 19:34:58 +0200 |
---|---|---|
committer | Avi Halachmi (:avih) <avihpit@yahoo.com> | 2019-12-19 16:23:19 +0200 |
commit | 4fc5cd32d022fbc898052bbc5beda2e618137aa4 (patch) | |
tree | 4366bb127f796d158dfd66e9939f0c33fc219d16 /player/javascript | |
parent | 3d2e30d764cdf5f89ce743b6f2f8c2f3f659b2ff (diff) | |
download | mpv-4fc5cd32d022fbc898052bbc5beda2e618137aa4.tar.bz2 mpv-4fc5cd32d022fbc898052bbc5beda2e618137aa4.tar.xz |
js: require: allow custom module search paths via mp.module_paths
Diffstat (limited to 'player/javascript')
-rw-r--r-- | player/javascript/defaults.js | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/player/javascript/defaults.js b/player/javascript/defaults.js index 4c2720201a..d85653bd3f 100644 --- a/player/javascript/defaults.js +++ b/player/javascript/defaults.js @@ -375,6 +375,8 @@ function process_timers() { - Module id supports mpv path enhancements, e.g. ~/foo, ~~/bar, ~~desktop/baz *********************************************************************/ +mp.module_paths = ["~~/scripts/modules.js"]; // global modules search paths + // Internal meta top-dirs. Users should not rely on these names. var MODULES_META = "~~modules", SCRIPTDIR_META = "~~scriptdir", // relative script path -> meta absolute id @@ -389,10 +391,14 @@ function resolve_module_file(id) { return mp.utils.join_path(main_script[0], rest); if (base == MODULES_META) { - var path = mp.find_config_file("scripts/modules.js/" + rest); - if (!path) - throw(Error("Cannot find module file '" + rest + "'")); - return path; + for (var i = 0; i < mp.module_paths.length; i++) { + try { + var f = mp.utils.join_path(mp.module_paths[i], rest); + mp.utils.read_file(f, 1); // throws on any error + return f; + } catch (e) {} + } + throw(Error("Cannot find module file '" + rest + "'")); } return id + ".js"; |