我对编写Firefox插件还比较新,但是我已经成功地拼凑出了一个工作的扩展,除了其中的核心部分。
在代码的某个地方,我需要对文件执行一个系统命令。我在网上找到了一段代码片段并试图进行调整,但没有成功。以下是我的xpi/components/script.js
代码:
var cmd = '/usr/bin/somecommand'
var args = ['-option', 'value', f.path ];
var execFile = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
var process = Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);
execFile.initWithPath(cmd);
if (execFile.exists()) {
process.init(execFile);
process.run(false, args, args.length);
}
有人能告诉我这里出了什么问题吗?我已经组装好了命令并获得了文件名,但我无法让Firefox执行此代码片段。
这个 execFile
, initWithPath
, createInstance
等等的东西真的需要吗??我只想像在CLI中一样执行命令:
$ somecommand -option value filename