2017-06-19 5 views
1

Ich schreibe ein Applet für Cinnamon GTK (Javascript).schreiben Sie ein Zimt-Applet, das einen Befehl hervorbringt

Nach vielen Stunden der Forschung und Versuch und Irrtum gelang es mir schließlich, einen Befehl zu spawnen. Aber ich denke nicht, dass es effizient funktioniert. Viele Seiten geben 404 zurück und einige Seiten sprechen über das Gewürz der Gewürze und einige Seiten sprechen über Applets mit anderen Sprachen ...

Wie auch immer, was ich sage ist, dass die Dokumentation erschreckend ist.

Mit Util (von /usr/share/cinnamon/js/util.js), versuchen:

Util.spawn_async(['/bin/bash', '-c', comm], CommandOutput); 

und ich kann die Ausgabe mit meiner 'CommandOutput (Ergebnis)' Funktion erhalten. Jetzt habe ich andere Methode verwendet habe:

let [res, pid, in_fd, out_fd, err_fd] = GLib.spawn_async_with_pipes(null, ["/usr/bin/command-name", "command-args"], null, GLib.SpawnFlags.SEARCH_PATH, null); 
out_reader = new Gio.DataInputStream({base_stream: new Gio.UnixInputStream({fd: out_fd})}); 
let [out, size] = out_reader.read_line(null); 

Und das scheint zu funktionieren ...

Bitte sagen Sie mir den besten Weg String-Funktionen auf einen Befehl der Ausgabe auszuführen?

Gibt es ein Referenzhandbuch? Was ist der beste Suchbegriff (in Google usw.)?

P.S. Ich möchte auch die Ausgabe des Befehls in eine temporäre Datei schreiben. Wie kann ich das machen?

Antwort

Verwandte Themen