From a18022dda670e4ee39da246a458b4debc99f4113 Mon Sep 17 00:00:00 2001
From: anekos
Date: Sat, 28 Nov 2009 15:40:03 +0000
Subject: -from -step -init オプションを追加
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@36026 d0d07461-0603-4401-acd4-de1884942a52
---
every.js | 60 +++++++++++++++++++++++++++++++++++++++++++++---------------
1 file changed, 45 insertions(+), 15 deletions(-)
(limited to 'every.js')
diff --git a/every.js b/every.js
index 5e1501b..79761f4 100644
--- a/every.js
+++ b/every.js
@@ -38,7 +38,7 @@ let PLUGIN_INFO =
every.js
to run a specified command every time at specified interval.
指定のコマンドを指定の間隔で実行する。
- 1.2.1
+ 1.3.0
anekos
new BSD License (Please read the source code comments of this plugin)
修正BSDライセンス (ソースコードのコメントを参照してください)
@@ -47,7 +47,7 @@ let PLUGIN_INFO =
2.0pre
:
+ :[INTERVAL]every [-i[nterval]=INTERVAL] [-init=INITIALIZE_COMMAND] [-from=COUNTER_FORM] [-step=COUNTER_STEP]:
run every time at [INTERVAL] sec.
:[INTERVAL]delay [-i[nterval]=INTERVAL] :
@@ -65,7 +65,7 @@ let PLUGIN_INFO =
]]>
:
+ :[INTERVAL]every [-i[nterval]=INTERVAL] [-init=INITIALIZE_COMMAND] [-from=COUNTER_FROM] [-step=COUNTER_STEP]:
[INTERVAL] 間隔で を走らせる。
:[INTERVAL]delay [-i[nterval]=INTERVAL] :
@@ -74,9 +74,15 @@ let PLUGIN_INFO =
:every! :
指定のプロセスを殺す。
- [INTERVAL] のデフォルトは 1秒。
- オプションでの指定時には、"s[ec]", "m[in]", "h[our]" の単位で指定可能。(e.g. "0.5hour")
- コマンドラインにいるときには、実行されないようになっている。
+ INTERVAL:
+ INTERVAL のデフォルトは 1秒。
+ オプションでの指定時には、"s[ec]", "m[in]", "h[our]" の単位で指定可能。(e.g. "0.5hour")
+ コマンドラインにいるときには、実行されないようになっている。
+ INITIALIZE_COMMAND:
+ 指定すると、:every 実行直後にそれが実行されます。
+ COUNTER_FROM/COUNTER_STEP:
+ 何れか一方を指定すると、COMMAND 中の "" という文字が、カウンター数字に置換されます。
+ この数字は、COUNTER_FROM で初期化され、every での実行毎に COUNTER_STEP ずつ増えます。
== Links ==
http://d.hatena.ne.jp/nokturnalmortum/20081102#1225552718
@@ -94,15 +100,34 @@ let PLUGIN_INFO =
liberator.plugins.every = every = {ps: []};
}
- function run (command, interval) {
+ function defined (value)
+ (typeof value !== 'undefined');
+
+ function defaultValue (value, def)
+ (defined(value) ? value : def);
+
+ function run (command, interval, opts) {
+ let process = {
+ handle: null,
+ command: command,
+ options: opts
+ };
+ if (opts.init)
+ liberator.execute(opts.init);
let fun = function () {
- if (liberator.mode != liberator.modules.modes.COMMAND_LINE)
- liberator.execute(command);
+ if (liberator.mode == liberator.modules.modes.COMMAND_LINE)
+ return;
+ let cmd = process.command;
+ if (defined(opts.from) || defined(opts.step)) {
+ if (!defined(process.counter))
+ process.counter = defaultValue(opts.from, 1);
+ cmd = cmd.replace(//i, process.counter);
+ process.counter += defaultValue(opts.step, 1);
+ }
+ liberator.execute(cmd);
};
- every.ps.push({
- handle: setInterval(fun, parseInt(interval, 10)),
- command: command
- });
+ process.handle = setInterval(fun, parseInt(interval, 10));
+ every.ps.push(process);
}
function kill (index) {
@@ -148,7 +173,9 @@ let PLUGIN_INFO =
kill(args.literalArg);
} else {
let interval = args['-interval'];
- run(args.literalArg, msec(interval ? expandSuffix(interval) : args.count));
+ let opts = {};
+ 'from step init'.split(' ').forEach(function (v) (opts[v] = args['-' + v]));
+ run(args.literalArg, msec(interval ? expandSuffix(interval) : args.count), opts);
}
},
{
@@ -164,7 +191,10 @@ let PLUGIN_INFO =
}
},
options: [
- [['-interval', '-i'], commands.OPTION_ANY]
+ [['-interval', '-i'], commands.OPTION_ANY],
+ [['-from', '-f'], commands.OPTION_FLOAT],
+ [['-step', '-s'], commands.OPTION_FLOAT],
+ [['-init', '-i'], commands.OPTION_STRING],
]
},
true
--
cgit v1.2.3