Как выполнить команду в дополнении Firefox? - PullRequest
3 голосов
/ 21 июля 2011

Я довольно новичок в написании дополнений 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

1 Ответ

1 голос
/ 04 сентября 2011

Прекрасно работает для меня, когда cmd и args изменены на:

var cmd = '/usr/bin/say';
var args = ['hello', 'world' ];

Как говорит Нил, нам нужно больше информации для устранения неполадок.Включите Error Console и проверьте, есть ли там какие-либо сообщения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...