From e2e6f5157a4825f1b6f636f61a7de8e04584b768 Mon Sep 17 00:00:00 2001 From: anekos Date: Tue, 7 Oct 2008 16:54:07 +0000 Subject: initial release git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@20935 d0d07461-0603-4401-acd4-de1884942a52 --- plugin_loader.js | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 plugin_loader.js (limited to 'plugin_loader.js') diff --git a/plugin_loader.js b/plugin_loader.js new file mode 100644 index 0000000..af50912 --- /dev/null +++ b/plugin_loader.js @@ -0,0 +1,41 @@ +// ==VimperatorPlugin== +// @name Plugin Loader +// @description-ja 指定(ディレクトリ|プラグイン)を起動時にロードする +// @license Creative Commons 2.1 (Attribution + Share Alike) +// @version 2.2 +// @author anekos +// ==/VimperatorPlugin== +// +// Usage: +// let g:plugin_loader_roots = "" +// let g:plugin_loader_plugins = "" +// +// Example: +// let g:plugin_loader_roots = "/home/anekos/coderepos/vimp-plugins/ /home/anekos/my-vimp-plugins/" +// let g:plugin_loader_plugins = "lo,migemized_find,nico_related_videos" +// +// Link: +// http://d.hatena.ne.jp/nokturnalmortum/20081008#1223397705 + + +function toArray (obj) { + return obj instanceof Array ? obj + : obj.toString().split(/[,|\s]/); +} + +let roots = toArray(globalVariables.plugin_loader_roots); +let plugins = toArray(globalVariables.plugin_loader_plugins); +let filter = new RegExp("[\\\\/](" + plugins.join('|') + ")\.(js|vimp)$"); + +log('plugin_loader: loading'); + +for each (let root in roots) { + let files = io.readDirectory(io.getFile(root), true); + for each (let file in files) { + if (!filter.test(file.path)) + continue; + liberator.io.source(file.path, false); + } +} + +log('plugin_loader: loaded'); -- cgit v1.2.3