Ich bin ziemlich neu im Schreiben von Firefox-Add-Ons, dennoch bin ich an einem Punkt angelangt, an dem ich eine funktionierende Erweiterung zusammengeflickt habe, mit Ausnahme des Kerns davon.
An einem bestimmten Punkt im Code muss ich einen Systembefehl für eine Datei ausführen. Ich habe einen Ausschnitt im Web gefunden und versucht, ihn zu adaptieren, aber ohne Erfolg. Von meinem 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);
}
Kann mir jemand sagen, was hier falsch ist? Ich habe den Befehl zusammengesetzt und den Dateinamen erhalten, aber ich kann Firefox nicht dazu bringen, dieses Codefragment auszuführen.
Ist das execFile
, initWithPath
, createInstance
etc. wirklich benötigt? Ich möchte nur den Befehl genau wie in der CLI ausführen:
$ somecommand -option value filename